字数统计工具
一次性统计文本的总字符数(含与不含换行)、中文字符数、英文单词数、数字串个数、行数、段落数、UTF-8 字节数与 UTF-16 长度,并给出字符构成与英文词频前 15,适合论文限字、文案投稿与前端输入框长度校验。
数据来源:Unicode CJK 统一表意文字区段 U+4E00—U+9FFF 与 UTF-8/UTF-16 编码规则
字符构成(占不含换行字符数的比例)
| 类别 | 数量 | 占比 |
|---|---|---|
| 中文汉字 | 50 | 34.5% |
| 英文字母 | 50 | 34.5% |
| 数字 | 13 | 9% |
| 空格与制表符 | 22 | 15.2% |
| 中英文标点 | 10 | 6.9% |
| 换行符(不计入占比) | 4 | — |
| 代理对(emoji 等,占2码元) | 0 | 0% |
| 其他字符 | 0 | 0% |
高频英文词与数字(按出现次数,最多 15 条)
| 排名 | 词条 | 出现次数 | 占 token 比 |
|---|---|---|---|
| 1 | your | 2 | 11.1 |
| 2 | 1(数字) | 1 | 5.6 |
| 3 | 100(数字) | 1 | 5.6 |
| 4 | 20(数字) | 1 | 5.6 |
| 5 | 2026(数字) | 1 | 5.6 |
| 6 | 3(数字) | 1 | 5.6 |
| 7 | 85(数字) | 1 | 5.6 |
| 8 | all | 1 | 5.6 |
| 9 | and | 1 | 5.6 |
| 10 | browser | 1 | 5.6 |
| 11 | data | 1 | 5.6 |
| 12 | in | 1 | 5.6 |
| 13 | is | 1 | 5.6 |
| 14 | never | 1 | 5.6 |
| 15 | run | 1 | 5.6 |
中文按 U+4E00—U+9FFF 的汉字逐字计数,不做分词,因此"中文词数"没有意义、未提供;英文以连续字母为一个单词(含连字符与撇号的内嵌形式算 1 个),数字串按 1 组计。UTF-8 字节数用于判断数据库字段与报文长度(中文 3 字节、emoji 4 字节),UTF-16 长度等于 JS 字符串的 length 属性,也就是表单 maxLength 实际限制的数值。
本页所有计算在浏览器内完成,输入内容不会被上传。
计算口径
字符数按 Unicode 码元统计(emoji 计 2);不含换行的字符数是剔除 、 后的长度。中文字数只统计 CJK 统一表意文字基本区 U+4E00—U+9FFF(含兼容表意文字区段),标点不计入汉字。段落数以连续空行分隔的非空块计数,行数按换行符切分后的段数(含空行)。词频只对英文单词与数字串统计,英文先转小写并去掉撇号连字符再归并。
使用说明
- 投稿要求"不超过 800 字"时以"中文字符数 + 英文单词数"作为口径
- 前端做输入框限长时用 UTF-16 长度,因为它与 JS 的 value.length 一致
- 需要字节级限制(如 4KB 以内的接口字段)时看 UTF-8 字节数
常见问题
Word 的"字数"和你统计的一样吗?
不完全一样。Word 的"字数"= 中文字符数 + 英文单词数,而"字符数(不计空格)"会额外包含标点与数字。本工具把这几项分开列出,可按需取用。
为什么中文没有词频?
中文分词需要词典或统计模型(如结巴分词),纯前端单文件实现无法保证准确率,误统计反而误导。所以汉字只统计字数,词频仅针对英文与数字 token。
1 个中文字占几个字节?
UTF-8 下常用汉字是 3 字节,扩展区生僻字与 emoji 是 4 字节;UTF-16 下常用汉字 1 个码元、emoji 2 个码元。MySQL 的 varchar(255) 按字符计,而按字节限制的场景(如某些报文头)就要看 UTF-8 字节数。