文本统计
文本统计字符、字节、单词、行数、句子与段落数,分词对多语言友好。
- 字符数
- 字符数(不含空格)
- 字节数(UTF-8)
- 单词数
- 行数
- 句子数
- 段落数
- 预计阅读
本页内容
什么是文本统计工具?#
文本统计工具读进一段文字,告诉你它里面到底装了什么:多少字符、多少词、多少句、占多少字节、读者大约要花几分钟读完。这件事听起来很简单,直到你被某个限制卡住——一条动态多了一个字符超限、一段 meta 描述悄悄超过了 160 字节、一个输入框的 maxlength 其实按 UTF-8 字节算而不是按可见字符算、一篇文章的”2 分钟阅读”标签其实算错了。
真正麻烦的是”一个词”这件事并不通用。英文用空格分词,但中文、日文、泰文不分——你好世界 是 4 个字符、4 个词,中间一个空格都没有。如果随手写一个 .split(' '),这整串会被算成 1 个词。本工具对 CJK 汉字、平假名、片假名、泰文按字符逐个计数,对拉丁、西里尔、希腊、天城文、韩文按空格分隔的词来数,所以跨语种的词数都站得住脚。字节数走的是真正的 UTF-8 编码(不是 string.length),这才是一个服务器或数据库列宽真正在意的东西。
全部在浏览器里跑——没有后端,不上传任何内容。
怎么使用#
- 在左侧 输入 框里输入或粘贴文字。框支持任意语种,会保留换行。
- 想看数字怎么动,点 示例 加载一段现成文字;想清空,点 清除。
- 看右侧面板。八行数据会随你输入实时变化:
- 字符数 —— 含空格和换行的总字符数。
- 字符数(不含空格) —— 同上,但扣掉所有空白字符。
- 字节数 —— UTF-8 字节长度,也就是数据库
VARCHAR(n)或 HTTP 头限制真正看到的数字。 - 词数 —— 按语种分别处理(CJK/假名/泰文按字符计,其余按空格分词)。
- 行数 —— 按换行符分隔的行。
- 句数 —— 按跨语种的句末符号切分(
.!?,外加中文的。!?和阿拉伯文的؟۔)。 - 段落数 —— 用空行隔开的块。
- 阅读时间 —— 词数除以约 200 词/分钟,向上取整到至少 1 分钟。
主要特性#
- 按语种分词计数。 CJK 汉字、平假名、片假名、泰文每个字符算一个词;拉丁、西里尔、希腊、天城文、韩文按空格分隔的词来数。一句中英混排的文字也能给出合理总数,而不是数崩。
- 真正的 UTF-8 字节数。
你好是 6 字节,不是 2——字节数反映的是存储和传输的真实开销。 - 跨语种断句。 识别中文和阿拉伯文的句末符号,所以
今天天气很好。明天见。会被算成两句,而不是一句。 - 实时更新,无需点按钮。 每敲一个键数字就重算,不存在”忘记点生成”这回事。
- 全程在本机处理。 粘进来的文字从不离开本页——没有请求、没有日志、没有后端。
实例演示#
把那句经典的英文全字母句贴进来:
The quick brown fox jumps over the lazy dog.
面板报出:
- 字符数:44(含句末的句号和 8 个空格)
- 字符数(不含空格):36
- 字节数:44(每个字符都是 ASCII,字节数正好等于字符数)
- 词数:9
- 行数:1
- 句数:1
- 段落数:1
- 阅读时间:1 分钟(9 个词远不到 200,但计数器会向下取整到至少 1 分钟,避免出现无意义的”0 分钟”)
换成中文 你好世界。,词数变成 4(每个汉字算一个),而字节数跳到 13——四个 3 字节字符加一个 1 字节的句号。“4 个字符”和”13 字节”之间的这道鸿沟,正是这个工具要替你提前暴露的那种意外,免得它在表单提交时才冒出来坑你。
常见问题#
为什么字节数比字符数大这么多?#
因为 UTF-8 用多个字节编码非 ASCII 字符:基本拉丁字母 1 字节,拉丁扩展(à、ñ、ç)2 字节,大多数 CJK 汉字和天城文 3 字节,emoji 和辅助平面字符 4 字节。按字节配额限流的表单和数据库看到的是那个更大的数字,所以本工具按同样的方式报字节数。
我这段中文的词数感觉偏高,对吗?#
多半是对的。CJK 文字不分词,按字符计数是约定俗成、可复现的衡量方式,跟大多数编辑器和文字处理软件报 CJK 长度的口径一致。如果你要的是语言学意义上的分词而不是字符计数,/zh-CN/text/word-frequency/ 工具的 CJK 模式用浏览器的分词器按真正的词边界来切。
“阅读时间”按多快的速度算?#
大约 200 词/分钟,这是成年人默读普通文字时一个被广泛引用的平均值。它只是个粗略估计——技术文档、代码或外语都会更慢。这个值总是向上取整到至少 1 分钟,免得一小段文字显示出一个没意义的”0 分钟”。
代码片段里的词也算得跟正文一样吗?#
是的——像 getUserById 这种标识符会被当成一个词,因为它里面没有空格也没有标点。如果你想让 getUserById 被算成三个词,先用 /zh-CN/text/transform/ 工具的命名转换把它拆开。