字数怎么统计才准?中文字符、英文单词与平台限字对照
同一段文字,Word 说 500 字、微博说还剩 30 字、公众号后台说超了——三个数都没错,因为它们数的根本不是同一样东西。「字数」不是一个客观数值,而是一套**口径**:数的是可见字符、汉字、英文单词,还是字节。想知道自己那段文字到底算多少,先确定要拿它去哪儿用,再用 在线字数统计 看多维度结果、用 文案限字检测 按平台口径核对。
- 字数不是一个数,是一组口径:可见字符、汉字数、英文单词数、字节数各有各的用途。
- 中文平台多按「可见字符」算,标点和空格通常都算;微博是 2 个英文字母算 1 字。
- SEO 标题、淘宝标题按「显示宽度」算:一个汉字占 2、一个英文字母占 1。
- 短信 70 字是 UCS-2 口径,纯英文短信能写 160;混进一个汉字就掉回 70。
- emoji 和零宽字符是数不准的主因:一个 emoji 可能算 1、2 甚至 11。
为什么同一段文字,各处数出来的字数不一样
因为「字数」从来不是一个客观数值,而是一套需要先约定的口径:数的可以是可见字符、汉字、英文单词,也可以是字节。口径不同,同一段文字得到不同的数字是正常结果,不是哪个工具算错了。
一句话定义:字数统计是按某一套约定的计数口径,把一段文本折算成一个数量——先定口径,数字才有意义。
六种最常见的计数口径
真正在用的口径大致就下面这几种。看懂它们,基本能解释你遇到的所有「字数对不上」。
| 口径 | 怎么数 | 谁在用 |
|---|---|---|
| 可见字符 | 肉眼看到几个就是几个,emoji 记 1,零宽字符不计 | 多数中文平台的输入框倒计时 |
| 汉字数 | 只数汉字本身,标点、空格、字母都不算 | 稿费结算、论文正文量估算 |
| 微博口径 | 汉字记 1,2 个半角字母或数字记 1 | 微博的 140 字折叠线 |
| 显示宽度 | 全角字符与 emoji 记 2,半角记 1 | SEO 标题、商品标题的截断判断 |
| UTF-16 长度 | 就是代码里的 str.length,emoji 代理对记 2 | 老系统的 varchar、部分接口参数校验 |
| 字节数 | UTF-8 下一个汉字 3 字节,GBK 下 2 字节 | 数据库字段长度、老式短信网关 |
先问「拿去哪儿用」,再选口径
判断该用哪个口径,只需要回答一个问题:这段文字最终要交给谁。交给读者看,关心的是汉字数与阅读时长;要发到平台,就得按那个平台的输入框口径;要写进数据库字段或走短信通道,看的是字节和编码。拿汉字数去核对微博的剩余字数,或者拿字符数去估短信条数,都会得到误导性的结论。
中文字数和英文单词分别是怎么数的
中文按「字」数、英文按「词」数,这是两套不同的计量单位,不能直接相加,也不能互相换算。一份中英混排的稿子,正确做法是两个数分别看。
中文:默认只数汉字,标点单独算
本站的中文字数默认只统计汉字本身(Unicode 里归属汉字的字符,含扩展区的生僻字),中文标点、全角空格都不计入。这个口径对应的是「这篇稿子有多少正文内容」。如果你要核对的是平台输入框,那边通常把标点也算进去,可以打开「含全角标点」的口径再看一遍——两个数一起看,才知道自己是内容超了还是标点太密。
需要留神的是全角空格:它属于空白字符而不是标点,所以不计入中文字数,但在按可见字符或显示宽度计数的平台上,它是实打实占位置的。用全角空格排版缩进的文案,很容易在提交时莫名其妙超字。
英文:连续字母算一个词,撇号连字符不拆开
英文单词按「一串连续的拉丁字母」来切,中间允许撇号和连字符把它连起来。所以 it's 是 1 个词而不是 2 个,well-known 也是 1 个词。数字串单独归类,3.14、1,000 各算 1 个,不会因为里面有小数点或千分位就被拆成几段。
标点按 Unicode 的标点类统计,中英文标点都算在内;而 +、=、<、>、$ 这类数学与货币符号属于符号类,不计入标点,emoji 同理。这个划分和多数写作软件一致,也是为什么「标点数」和你手动数的结果偶尔会差几个。
各平台限字口径对照:微博、小红书、短信、SEO
平台限字之所以难对齐,是因为每个平台选的口径都不一样,而输入框里只显示一个数字,从不告诉你它按什么在数。下面这张表是几个高频场景的实际口径。
| 场景 | 常见上限 | 计数口径 |
|---|---|---|
| 微博折叠线 | 140 | 汉字 1、2 个半角字母数字 1 |
| 小红书标题 | 20 | 可见字符 |
| 抖音简介 | 55 | 可见字符 |
| 公众号标题 / 摘要 | 64 / 120 | 可见字符 |
| B 站标题 / 简介 | 80 / 250 | 可见字符 |
| 淘宝商品标题 | 60 | 显示宽度(汉字 2) |
| SEO 标题 / 描述 | 60 / 160 | 显示宽度(汉字 2) |
| 单条短信 | 70 或 160 | UCS-2 / GSM-7 编码 |
显示宽度口径:为什么纯中文标题只能写一半
SEO 标题和商品标题按显示宽度算,一个汉字占 2 格、一个半角字母数字占 1 格。所以标称 60 的上限,纯中文只能写 30 个汉字,中英混排则介于两者之间。这也解释了为什么英文站的标题看着长得多却不会被截断。写中文标题时,把品牌词、后缀这些次要信息放在末尾,被截掉也不影响主信息传达。
短信口径:一个汉字就能让你从 160 掉到 70
短信按编码分档:内容全部落在 GSM 基本字符表里(英文字母、数字、常见符号)时用 GSM-7,单条 160 个字符;一旦出现任何一个汉字或中文标点,整条短信必须切到 UCS-2,单条立刻降到 70 个字符。注意是「整条」降级,不是超出部分降级。所以营销短信里那句顺手加上的中文签名,可能直接让计费条数翻倍。
还有个容易忽略的细节:换页符、^、{、}、[、]、~、|、€ 这几个字符虽然能用 GSM-7 发送,但每个要占 2 个单位。一条看起来只有 158 个字符的英文短信,可能因为里面有两个方括号就超了。
数出来偏多偏少?emoji、零宽字符与全角的坑
「本地数着没超、提交时说超了」几乎都出自三类字符:emoji、看不见的零宽字符、以及被当成普通字符的全角符号。它们的共同点是——肉眼数不出来。
emoji:同一个符号在不同口径下能差十倍
单个 emoji 按可见字符算是 1,按 UTF-16 长度算通常是 2,按显示宽度算是 2。而由零宽连接符拼起来的组合 emoji(比如表示一家人的那类)在 UTF-16 口径下可能记到 10 以上。如果你的文案要提交给一个按 str.length 校验的老系统,几个 emoji 就足以造成几十个字符的偏差。碰到这种情况,把 emoji 挪到文案末尾或干脆去掉,比反复删正文更有效。
零宽字符:复制粘贴带进来的隐形长度
从网页、聊天软件、PDF 复制的文字常夹带零宽空格、字节序标记、软连字符。它们不显示、不占宽度,但在多数按长度校验的系统里实打实占位置。本站统计可见字符时会主动排除这类独立的零宽与格式字符,所以给出的数更接近肉眼所见;但平台那边未必这么宽容。稳妥做法是提交前先过一遍 富文本清理 或 去空行空格,把隐形字符清干净再数。
全角字母数字:不享受任何折扣
微博口径里 2 个半角字母算 1 字,但全角的 A、1 不在此列,仍然一个算一个。用输入法打出全角字符往往是无意的——中文输入法下按 Shift 切换不及时就会打出全角标点和字母。文案偏长又找不到原因时,检查一下是不是混进了全角半角不一致的字符,必要时用 全角半角转换 统一一遍。
数完字数之后:阅读时长与词频
字数只回答「有多长」,它不回答「读起来要多久」和「都在讲什么」。这两个问题需要另外两个口径,而且它们比字数本身更接近读者的真实感受。
阅读时长:把字数折算成分钟
阅读时长估算 按中文默认每分钟 300 字、英文默认每分钟 200 词折算,并把数字串按读音长度单独计——读「二零二六」确实比读一个英文单词慢。这些数值是经验区间不是定论,个体差异极大,页面上可以按自己的实际语速调整档位再算。它的典型用途是给文章标注「预计阅读 6 分钟」,或者估算一段演讲稿念完要多久。
需要提醒的是:默认口径下不含标点停顿以外的思考时间,技术文档、含大量数据的内容实际阅读时间通常更长,标注时留一点余量更诚实。
词频统计:看这段文字到底在重复什么
词频统计 按出现次数把词排序,用来发现自己的写作习惯很有效——同一个连接词在一屏里出现七次,读者会明显觉得啰嗦,但作者自己往往看不出来。做关键词布局时它也能直观告诉你核心词的实际密度,而不是靠感觉判断「提得够不够」。
几个页面之间的字数口径是统一的:阅读时长用的汉字数、英文词数与字数统计页完全同源,所以不会出现「这页说 800 字、那页说 760 字」的情况。发现两处数字不一致,通常是你在其中一处改动过口径选项。
常见问题
- 中文字数统计,标点符号算不算一个字
- 绝大多数中文平台按「可见字符」计数,标点算字、空格也算字,一个句号就占掉 1 格。但「汉字数」这个口径只数汉字本身,标点不计——所以论文查重、稿费结算里说的字数,和微博输入框倒计时里的字数天然不是一个数。本站的字数统计会把两种口径分开列出:可见字符数含标点空格,中文字数默认只数汉字,可以手动叠加全角标点再看一遍。
- 微博的字数限制是怎么算的,为什么英文能写更多
- 微博口径里 2 个半角英文字母或数字才算 1 个字,汉字仍然 1 个算 1 个,不足 1 个的按向上取整。所以 140 字的折叠线,用纯中文写只能写 140 个汉字,用纯英文写实际能写到 280 个字符。注意全角的 A、1 不享受这个折扣,仍然按 1 字计。
- 短信为什么有时候 70 字、有时候 160 字
- 取决于短信用哪套编码。纯英文数字和常见符号能用 GSM-7 编码,单条 160 个字符;一旦出现汉字、中文标点或不在 GSM 基本表里的字符,整条短信就要切到 UCS-2 编码,单条只剩 70 个字符。另外 GSM 扩展表里的字符(如 ^、{、}、[、]、~、|、€、换页符)虽然能用 GSM-7 发,但每个要占 2 个单位。超长会被拆成多条计费,拼接时每条还要再让出几个字符做拼接头。
- SEO 标题和描述应该控制在多少字
- 搜索结果里截断看的是显示宽度不是字符数,常见做法是标题按 60、描述按 160 的显示宽度来控制,其中一个汉字占 2、一个英文字母或数字占 1。换算过来,纯中文标题大约 30 个汉字就到线了。这只是经验区间不是硬性规则,各搜索引擎的截断点会随设备宽度变化,关键信息尽量放前半段更稳。
- 一个 emoji 到底算几个字
- 看口径。按可见字符算,绝大多数 emoji 记 1;按 UTF-16 长度(也就是很多老系统和接口用的 str.length)算,emoji 通常记 2,因为它由代理对组成;按显示宽度算通常记 2。最极端的是带零宽连接符的组合 emoji,比如一家四口那个,它由多个基础 emoji 拼成,在 UTF-16 口径下可能记到 11。所以「文案在本地看着没超、提交时被判超长」十有八九是 emoji 造成的。
- 为什么复制过来的文字,字数比看到的多
- 大概率混进了不可见字符。从网页、聊天软件、PDF 里复制的文字常带零宽空格、字节序标记、软连字符这类看不见但占位置的字符,有些系统会把它们计入长度。本站的字数统计在算「可见字符」时会主动排除独立的零宽与格式字符,所以它给出的数会比 str.length 更接近你肉眼数的结果;想彻底清掉这些字符再统计,可以先过一遍富文本清理。
- 英文单词是按空格数的吗,it's 算一个还是两个
- 不是简单按空格切。本站把连续的拉丁字母算作一个单词,允许内部的撇号和连字符把它连起来,所以 it's 算 1 个词、well-known 也算 1 个词。数字串单独统计,3.14 和 1,000 各算 1 个,不会被拆成好几个。这样数出来的结果更接近英文写作里对「词数」的通常理解。
- 字数统计会把我的文稿上传吗
- 不会。本站的字数统计、限字检测、词频统计、阅读时长都在浏览器本地完成,文字不离开你的设备,也不写进任何服务器。未发表的稿件、内部文案、含个人信息的名单都可以直接粘进去;关掉页面内容即消失,刷新后不保留。
先想清楚这段文字要发到哪儿,再选口径——这一步比数字本身重要。日常写作用 在线字数统计 看多维度结果,要发平台前用 文案限字检测 选好平台预设核一遍,两个页面都在浏览器本地计算、内容不上传。
参考资料
延伸阅读
本文由「小鹿tools」整理,更新于 2026-08。如发现信息过期或有误,欢迎反馈。