页面统计

把网页或文案粘进文本框,本页一次性数出总字符、中文字、英文字母、数字、空格、行数、句子数与 UTF-8 字节数。处理全在浏览器本地完成,输入不上传服务器,手机也能直接打开用。

统计口径:总字符按 Unicode 码点计(表情算 1 个);中文字匹配常用汉字区;字节数按 UTF-8 编码长度。演示文本已预填,打开即出结果。

使用方法

页面统计是「粘文本、选范围、点统计」三步:

  1. 「统计范围」选全部字符、不含空格或不含标点,控制分母口径;默认全部字符。
  2. 「粘贴要统计的文本」框里直接粘网页正文、标题或文案;演示文本已写好,打开就能看到结果。
  3. 点「统计文本」,或在文本框按 Ctrl/Cmd + Enter。八张卡片分别给总字符、中文字、英文字母、数字、行数、句子数、空格数、UTF-8 字节数;下方对照表给出常见页面类型的体量参考,可导出 CSV、JSON 或复制 TSV。
  4. 想换一批按「载入示例」重新填入演示文本。

页面统计能解决什么

它把「这篇有多少字」变成一眼可读的八项指标,适合三类场景:

  • 写标题与落地页:搜索引擎和平台常按字数或字符上限截断,统计总字符与中文字能提前知道会不会超长,避免标题被「…」吞掉。
  • 公众号与小红书:这类平台对字数、行数敏感,统计行数和句子数可判断阅读节奏;中英文混排时分开计数更能看清语言占比。
  • 开发与技术文档:字节数(UTF-8)决定接口与数据库的存储占用,统计它能预判一段文案会不会撑爆字段长度。

本页不做的事:不统计「词频」或「关键词密度」(那是另一类工具);不把中文按词切分(中文没有空格分词,只数汉字个数);不保存你粘的文本,刷新即清空。需要词频请用专门的关键词工具。

原理和变量

① 用了哪个具体函数:核心用 Array.from(text) 把字符串拆成 Unicode 码点数组以正确数字符(表情与生僻字算 1 个),再用正则 match(/[一-龥]/g) 取中文字,用 new TextEncoder().encode(text).length 取 UTF-8 字节数;句子数按句末标点计数。

② 关键参数为什么这样取:总字符用码点而非 string.length,是因为后者按 UTF-16 单位计,一个表情会算成 2,导致字数虚高;码点口径更贴近「人眼看到的字数」。字节数用 UTF-8 而非 UTF-16,因为网络与数据库几乎都按 UTF-8 存储。

③ 遵循哪个标准:字符统计遵循 Unicode 码点定义,字节长度遵循 RFC 3629 的 UTF-8 编码;中文范围取常用汉字区(CJK 统一表意文字基本区),不强行覆盖扩展区生僻字,避免把符号误判成汉字。

④ 输入怎么变成输出:演示文本里 Array.from 得到 N 个码点即总字符;正则筛出中文字得到中文字数;TextEncoder 编码后得到字节数。八项指标对同一段文本同步算出,卡片一一对应。

⑤ 边界与阈值:空文本时总字符为 0,行数计为 0,不报错;超长文本(数十万字)仍能在本地算完,但极端长度可能让卡片渲染略慢。统计范围切换只改变「总字符」是否含空格/标点,不影响中文字等单项。

⑥ 常见误用的正确解释:总字符不等于中文字数(还含英文、数字、标点、空格);「字符数」和「字节数」也不同,一个汉字通常占 3 个 UTF-8 字节;行数按换行符计,末尾无换行时最后一行也算 1 行;句子数按标点估算,连续标点可能多计,仅作参考。

完整示例(文本仅作演示)

保持演示文本:一段中英混排、含数字与标点的短文。

  • 总字符:按码点计,含中英文、数字、空格与标点。
  • 中文字数:只数汉字,不含英文单词与阿拉伯数字。
  • 英文字母:统计 Page、statistics 等字母个数。
  • 数字:示例中的 123 计 3 个。
  • 行数:演示文本有两行(按换行符),末行无换行也算 1 行。
  • UTF-8 字节:中文约每字 3 字节,英文约每字 1 字节,合计明显大于字符数。

这六项与页面默认卡片、对照表「公众号文章」一行口径一致,可对照理解。

输入范围与对照表

页面统计的对照表列出常见内容类型的体量参考(字符与中文字为示意区间),帮你预判一段文案大致落在哪个量级:

常见页面类型的字数体量参考(示意值)
内容类型示例长度(字符)中文字数行数统计重点
微博短文1401382是否超字数
朋友圈2001963表情与字数
商品标题60581关键词密度
商品详情1200118018段落与行数
公众号文章5000495060阅读时长
小红书笔记100098014标签数
SEO 落地页80076024标题与密度
论文摘要6005808中英文混排
邮件正文40038010短语数
代码注释30012012英文占比
新闻稿1500147020段落结构
简历正文70066022行数控制

对照表是体量参考,非计算结果;真实字数请用上方文本框统计,二者口径不同不要直接相加。

结果边界和舍入

计数性质:所有指标都是整数计数,不存在小数;卡片直接显示个数,不做四舍五入。

什么时候会提示:空文本不报错,各项显示 0;切换统计范围即时重算。页面本身几乎不报错,只有浏览器不支持 TextEncoder 的极老环境字节数可能取不到,那时会提示「当前环境不支持字节统计」。

口径差异:总字符含空格与标点,「不含空格」「不含标点」会分别去掉它们再计总数;中文字、英文、数字三项不受范围影响,始终单独计数,方便你交叉核对。

结果用途:这是本地计数,仅作写作与存储预估,不替代平台的真实截断规则,发布前请以目标平台为准。

常见问题

总字符和字节数为什么差很多?

总字符按「看到的字」计,一个汉字算 1;UTF-8 下汉字通常占 3 字节、英文占 1 字节,所以字节数一般是字符数的 1~3 倍,中文越多差距越大。两者量纲不同,不能比大小。

表情符号算几个字符?

按 Unicode 码点计,一个表情算 1 个字符;若用老式的 string.length 会被拆成 2,所以本页用码点口径,更贴近肉眼字数。

中文词数怎么没有?

中文没有空格分词,本页只数「汉字个数」而非「词语个数」。要词频或分词请用专门的关键词密度工具,本页只做字符级统计。

行数怎么算的?

按换行符(\n、\r\n、\r)切分;末尾无换行时最后一段也算 1 行。所以一段没换行的文本行数是 1,不是 0。

中英文混排会算错吗?

不会。中文匹配汉字区、英文匹配字母,两项独立计数;数字与空格也单列,四项加起来应等于总字符(在「全部字符」范围下)。

统计范围切换影响哪些项?

只影响「总字符」:选不含空格会减掉空格、选不含标点会减掉标点。中文字、英文、数字、行数等单项始终不变,方便你分别核对。

我的文本会被保存或上传吗?

不会。全部统计在浏览器内完成,刷新即清空;可在 Network 面板复查,点「统计文本」时没有任何请求发出。

超长文章能统计吗?

能。本地处理数十万字也没问题,只是卡片渲染可能略慢;若卡顿可分段粘贴统计再相加,本页不限制长度。

相关工具