字数并不只有一个
说起“字数”,听上去像是一个确定的数字,但实际上取决于把什么算作一个字,结果会有好几种。把同一份自我介绍书分别粘贴到两个网站,得到的结果相差几个字,这种情况很常见。差异大多来自三点:是否计算空格、换行怎么算,以及表情符号这类由多个编码组合而成的字符算几个字。
含空格与不含空格
含空格是把空格也算作一个字的数值。韩语“안녕 하세요”(你好)含空格为 6 个字。不含空格则去掉所有空格、制表符、换行等空白,同一句话变成 5 个字。
韩语按词组(어절)分写,因此空格所占比重不小。一个词组通常有三四个字,所以在一般的散文中,空格占全部字数的五分之一左右是很常见的。因此“含空格 1,000 字”和“不含空格 1,000 字”的实际篇幅相差不少。按不含空格计算,同样的限制内可以写入更多内容。
如果提交方没有说明标准,按更严格的含空格标准来控制字数会更稳妥。
换行算几个字
换行的处理方式是各服务之间差别最大的地方。
- 把换行算作 1 个字
- 完全不计算换行
- 把 Windows 式换行(CR+LF 两个字符)直接算作 2 个字
如果一篇文章有 10 个段落,仅这一差异就会造成 10~20 字的出入。本工具把 Windows、Mac、Linux 的换行统一计为 1 个字;关闭“换行也计入字数”选项后则不计换行。不含空格的数值无论选项如何都不包括换行。
表情符号与组合字符
在计算机中,字符以名为“码位”(code point)的编号保存。大多数字符一个编号就是一个字,但也有例外。
- 组合表情符号:家庭表情 👨👩👧 由三个人物和两个把它们连起来的不可见字符(ZWJ)组成,共 5 个码位。用 JavaScript 默认的长度计算会得到 8。
- 肤色与国旗:👍🏽 由手势和肤色修饰符两个字符组成,🇰🇷 由两个区域指示符组成。
- 分解的韩文(NFD):在 Mac 上创建的文件名或某些文档中,“한”可能以 ㅎ、ㅏ、ㄴ 三个编码保存。屏幕上看起来是一个字,编码上却是 3 个。
本工具遵循 Unicode 标准的“字素簇”(grapheme cluster)规则,把肉眼所见的一个整体算作 1 个字。因此 👨👩👧 和分解后的“한”都算 1 个字。而字节计算会反映实际保存的全部编码,所以表情符号较多的文章,字节数相对字数会大幅增加。
提交前要确认的事项
- 确认公告或说明中写的标准是含空格还是不含空格。
- 最后直接粘贴到提交系统中,确认系统显示的字数。因为各系统对换行的处理可能不同。
- 与其刚好卡在上限,不如留出几个字的余量,以免因换行差异而超出。
- 表情符号和特殊字符可能在提交系统中显示为乱码或计数方式不同,尽量不要使用。
更新日期: 2026-09-23