字符计数器
统计含空格和不含空格的字符数,实时显示相对于各种重要限制的进度——元描述、页面标题、X 帖子、短信分段和 Instagram 说明文字。
- 文件永不离开你的设备
- 免费,无需注册
- 无水印
- 加载后可离线使用
如何字符计数器
- 1
输入你的文本
在输入框中输入或粘贴文字——每次按键都会更新计数。
- 2
关注各项限制
每个平台的限制都会显示一条实时进度条,接近上限时变琥珀色,超过后变红色。
- 3
精简并复制
编辑到合适长度,然后复制完成的文本。
为什么"字符"这个概念比听起来更难界定
大多数人以为字符计数就是"这段文字里有多少个字母和符号",这个概念听起来毫无歧义,直到表情符号和带重音符号的字符出现。单个表情符号显示为一个字形,但在内部经常被存储为两个配对的 UTF-16 码元,在 UTF-8 编码下最多占用四个字节——所以按码元计数的工具会把一个表情符号报告成两个字符,按字节计数的工具又会报告出不同的数字,而人眼看到的就是一个。这个工具统计的是人实际感知到的内容——一个可见的表情符号就是一个字符——因为这才符合人们通常想要满足的那些限制。
带重音符号的字母带来一个相关但不同的问题:像 é 这样的字符,既可以被存储成一个预组合的码点,也可以被存储成一个普通的 "e" 加上一个独立的组合重音符号,这是两种渲染出来一模一样的不同字节序列。这个工具按*显示效果*计数,把这两种表示方式都算作一个字符,这符合一个人看着渲染出来的文本用肉眼数出来的结果。
为什么短信的字数上限不是一个固定数字
使用较早的 GSM 7 位字符集——纯拉丁字母、数字和基本标点——发送的短信,一条能装进 160 个字符。而一旦消息里出现了这个字符集之外的字符——任何表情符号、大多数 GSM 支持范围之外的重音字母,或者来自非拉丁文字的字符——运营商就会把整条消息切换成 UTF-16 编码,把单条消息的上限降到 70 个字符,而且不是逐渐降低,而是在任何一个符合条件的字符出现的瞬间就断崖式下跌。一条原本 155 个字符、在纯文本上限内绰绰有余的消息,只要加入一个表情符号,就可能悄无声息地拆分成三条按条计费的消息段。
为什么元描述和标题的字数限制只是近似值
搜索引擎截断摘要和标题标签,依据的是渲染后的像素宽度,而不是固定的字符数,因为不同字母占用的横向空间并不相同——一个标题里全是 "i" "l" 这类窄字母,能在同样的截断位置里塞进比全是 "m" "w" 这类宽字母的标题更多的字符。常被引用的字符数——大约 155 个用于描述,大约 60 个用于标题——是对这种基于像素的截断在一般文本上通常落在哪里的实用性近似值,而不是搜索引擎逐字符强制执行的规则。在这个近似的预算范围内把重要的词放在前面,是保证含义完整的关键,即使具体的截断点会因为所用字母的不同而略有变化。
常见问题
表情符号算一个字符吗?
这个工具把表情符号算作一个字符,这符合用户实际看到的效果。很多系统的算法并不一样:单个表情符号可能占用两个 UTF-16 单元,在 UTF-8 编码下最多占用四个字节,所以数据库列或短信网关可能会把它算成不止一个。这里显示的短信限制已经把这一点考虑在内。
理想的元描述长度是多少?
大约 155 个字符。Google 在桌面端大约 160 个字符处截断摘要,移动端截断得更早,所以把核心信息放进前 120 个字符,能保证在各种设备上都不会被截断。
标题标签能有多长?
Google 是按像素宽度而不是字符数来衡量标题标签的,但大约 60 个字符是截断开始出现的地方。把重要的词放在前面——即使标题被截断,只要含义在开头,依然能起作用。
为什么一条短信会变成好几条?
纯 GSM 字符集的短信一条能装 160 个字符。只要加入一个表情符号或不常见的字符,整条消息就会切换成 Unicode 编码,上限骤降到 70 个字符——这可能会把一条消息变成三条。