字符数含空格与不含空格:表单到底按哪种算
表单、简历投递网站、短信或社交平台发文时,字符数通常按两种方式计算:含空格,或不含空格。先看字段旁边的标签或提示文字,通常会写明。如果两者都没写,就用更严格的那种算法,一般是不含空格的数。在按文本编码长度或字节数计算的系统里,表情符号和部分带重音符号的字母可能被算成多个字符,所以同一段文字在一个计数器里能通过,在另一个里却可能超限。请使用与表单规则一致的工具来统计。
字数统计器文字超出字数限制了吗?免费使用含空格还是不含空格
- 含空格:把你输入的每一个字符都算作一个,包括每个空格。
- 不含空格:统计前先去掉所有空白字符,单词会连在一起。字数统计的“不含空格”结果会去掉所有空白字符,包括换行符、制表符和不间断空格,然后统计剩下的字符。
“Hello world”含空格是11个字符,不含空格是10个。如果字段要求不含空格的字符数,就应该看第二个数字。
为什么一个表情符号会算成两个
文本的长度有两种。第一种是人眼看到的长度,即字素簇:一个可见字符,即使由多个码位组成。第二种是计算机实际存储的长度。JavaScript 的字符串长度,以及许多旧系统,计算的是 UTF-16 码元。大多数字母占用一个码元,但基本多文种平面(BMP)以外的字符,包括许多表情符号,占用两个码元。竖起大拇指的表情符号 U+1F44D 看起来是一个字符,却占两个 UTF-16 码元,因此按码元计算的计数器会显示 2。
这里的字数统计工具统计的是可见字符,所以竖大拇指表情算 1。一个家庭表情符号也算 1,尽管它由多个码位通过零宽连接符组合而成。按码元计算的表单会显示更大的数,而且文本里每多一个表情符号,差距就会增加。
带重音符号的字母
字母 é 有两种存储方式。一种是单个码位 U+00E9,在任何地方都只占一个码元。另一种是字母 e 后面接组合重音符 U+0301,共两个码位、两个码元。两者在屏幕上看起来完全一样。按码位或码元计算的计数器对第二种会得到 2,而字数统计两种都得 1。
字节限制又带来另一种差异。在 UTF-8 中,é 占两个字节,大多数表情符号占四个字节。如果字段有字节上限,能容纳的带重音字母或表情符号可能比字符数看上去的少。字数统计不显示字节数,因此需要另外估算。
换行符和隐藏字符
在文本框里,换行是一个字符。许多系统把 Windows 的换行存为两个字符,即回车和换行,网页表单提交时也常以这种形式发送换行。因此,服务器上统计的数量可能比文本框里显示的多,每个换行多算一个。应该按提交时的实际内容统计,而不只是按你输入时看到的内容。
零宽空格的情况不同。不含空格的统计不会把它当作空白字符,所以它会保留在结果里,使数字变大。先用删除不可见字符处理文本。该工具会保留制表符和换行符,并把不间断空格转换成普通空格,这样不含空格的统计就能将其去掉。隐藏字符指南解释了这些字符从哪里来。
同一段文字,五种计数
以单词“Café”、一个空格和竖大拇指表情 U+1F44D 为例,其中 é 以单个码位存储。不同的计量方式得出的总数各不相同:
| 计量方式 | 数量 |
|---|---|
| 可见字符,含空格(字数统计) | 6 |
| 码位 | 6 |
| UTF-16 码元(JavaScript 长度) | 7 |
| UTF-8 字节 | 10 |
| 可见字符,不含空格(字数统计) | 5 |
每个数字在自身的计量方式下都是正确的。到底按哪种计量,由表单决定,所以规则比任何一个具体数字都重要。
操作步骤
- 先看清规则:按字符、字节还是词计算,以及是否计入空格。
- 用删除不可见字符清理文本,避免看不见的字符抬高计数。
- 把文本粘贴到字数统计中,查看字符数和不含空格的字符数。限制表中列出的是常见限制,但真正要用的数字,是表单实际统计的那一个。
- 如果表单按字节计算,按上文方法单独估算字节数。
- 如果表单自带实时计数器,以它的数字为准,再用本工具找出两者不一致的原因。
- 如果规则仍然不明确,就留出余量。字数限制指南讲解了词数以及各平台规则的同类问题。
特殊情况
- 平台规则优先。 如果平台有自己的计数器,应以它的结果为准,而不是通用的数字。
- 末尾空格。 表单可能会去掉字段两端的空格,也可能不会。末尾一个空格就可能让结果多出一个。
- 复制的文本。 从网页复制的内容可能含有不间断空格和不可见字符。统计前先用删除不可见字符清理。
由 AI 辅助翻译自英文原文。
评论
还没有评论。快来抢沙发。


