实时统计字符数、Word 口径字数、汉字数、英文单词数、标点数、行数与段落数、UTF-8 字节数与阅读时长,并用浏览器内置词典给出中文词频 Top 50。四种字数口径并列显示,文本不上传。
同一段文字,不同地方给出的「字数」经常不一样,不是谁算错了,是定义不同。本工具把这四个数字并列放在最上面,不用你再猜。
公众号后台、论文查重、翻译报价、表格字数限制,各自用的是不同的口径。提交前对着目标平台的规则选对应的那个数字,比事后被退回重改省事。
Microsoft Word 的「字数」按这个规则:汉字每字算 1,连续的字母数字串算 1 个词,标点与空白都不算。所以「你好,world!」是 3 个字——「你」「好」各一,加上「world」一个词。
这也解释了为什么中英混排的文章,Word 字数总是比字符数少:英文单词被压缩了。一段 100 个字符的英文可能只有 18 个词,而 100 个字符的中文是 100 个字。
本工具的口径与 Word 对齐,可以用来核对论文、作业的字数要求。已知的细微差异:小数点会打断数字,「3.14」在这里算 2 个词而 Word 算 1 个。这个差异只影响含小数点的文本,且通常不影响是否达标。
JavaScript 的 length 数的是 UTF-16 码元,不是用户眼里的字符。一个「👨👩👧👦」在 length 里是 11,一个「𠀀」(扩展 B 区汉字)是 2,一个带肤色的「👍🏽」是 4。用 length 当字数会得到一个明显偏大的数字。
本工具的「字符数」按字素簇(grapheme cluster)计算,也就是你眼睛看到的「一个字」。上面三个例子都算 1。这与 Word、微信、各类输入法显示的字符数一致。
如果确实需要 UTF-16 长度,明细里有单独一项「UTF-16 长度」——它决定了某些数据库字段(比如 VARCHAR(50))能不能装下你的文本,是开发者需要的数字。
写作时最容易犯的毛病是重复用词,自己读不出来,读者一眼就腻。词频表把这件事量化了:如果「其实」「非常」「进行」排在前十,那就是该改的地方。
中文分词用的是浏览器内置的 ICU 词典(Intl.Segmenter),不是按字数硬切。「中华人民共和国成立了」会被切成「中华 / 人民 / 共和国 / 成立 / 了」,所以词频统计的是真正的词,不是碎片。整个过程零依赖、不联网、不需要下载词典文件。
默认过滤「的、了、是、在」这类虚词,否则它们会永远占据榜首。想看看自己是不是「的」用太多,把「过滤停用词」关掉即可——这个开关必须存在,因为那正是写作者要查的东西。
统计完常常要顺手改一下。工具条上的按钮都是纯文本替换,改完立刻重新统计,不满意可以撤销(Ctrl+Z)。
去重行是唯一会删内容的操作,所以点它先显示「将删除 N 行」让你确认。空行不参与去重——空行是段落分隔,用户点这个按钮想删的是重复的内容行,不是自己的段落结构。
全角转半角只转全角字母与数字(「ABC123」→「ABC123」),不动中文标点。把「,」转成「,」在中文正文里是错的,那是排版事故而不是修正。
本工具免费、免登录、不限次数。文本只在你的浏览器里参与计算,不会发送到服务器,也不写入 localStorage(关掉页面就没了,不会出现「上次的稿子还在」的困惑)。
硬性上限是 5MB(约 170 万字)。超过这个量浏览器处理会明显卡顿,因此明确拒绝并提示分段统计,而不是让你等一个可能永远不来的结果。词频统计另有 20 万字的上限——超过时只统计前 20 万字,页面上会写明,不会静默给一个不完整的榜单。
因为「字数」至少有四种定义:UTF-16 码元数、字素簇数、汉字数、Word 口径(汉字每字 1 + 英文每词 1)。本工具把这四个数字并列显示,填表时对着目标平台的要求选对应的那个。公众号后台一般用字符数,论文和作业一般用 Word 口径。
看你用哪个数字。「字符数」包含标点,「Word 口径字数」不包含标点。如果要求是「不少于 800 字」,通常按 Word 口径(不含标点);如果要求是「不超过 2000 字符」,那就按字符数(含标点)。
按本工具的字素簇算法算 1 个字符。但在 UTF-16 长度里它可能占 2 到 11 个码元(比如带肤色修饰的「👍🏽」是 4,「👨👩👧👦」是 11)。如果平台按 UTF-16 限制长度,要看明细里的「UTF-16 长度」那一项。
不需要。用的是浏览器内置的 ICU 词典(Intl.Segmenter),Chrome、Edge、Safari、Firefox 都已支持。它能把「中华人民共和国」切成「中华 / 人民 / 共和国」,所以统计的是真正的词。极老的浏览器不支持时会降级为单字切分,页面会明确提示。
默认开启了停用词过滤,「的、了、是、在」这类虚词会被剔掉,否则它们永远占据榜首,看不到真正的内容词。想看的话把「过滤停用词」的开关关掉即可。
5MB(约 170 万字)以内做了防抖与分帧处理,通常一到两秒出结果。超过 5MB 会明确拒绝并建议分段统计——继续处理下去浏览器标签页大概率会被拖死,那样更难办。词频统计超过 20 万字时只算前 20 万字,页面上会写明。
不会。不写 localStorage、不发请求、不做任何持久化。关掉或刷新页面,内容就没了——这是刻意的,避免下次打开时出现「上次没写完的稿子还在」的困惑。