社交媒体字数统计(Twitter/X风格计数)

遵循X(前身为Twitter)加权计数规则的字数统计工具。全角字符按2个字符计算,半角字符按1个字符计算,实时显示距离280字上限还剩多少字符。

使用提示

  • X的字数统计并非「视觉上的字符数」,而是采用加权规则:中日韩(CJK)文字和全角符号按2个字符计算,因此与单纯的字符数会有出入。
  • 同样是30个字符,纯英数字帖文尚有余裕,而纯中文帖文按加权规则相当于60个字符,很快就会逼近280字的上限。
  • 无论实际长度如何,URL统一按23个字符计算(t.co短链接长度),因此本工具仅作为纯文本的大致参考,含URL的帖文请在实际发帖界面中最终确认。
  • 每个表情符号本身是1个码点,但按加权规则大多不属于「宽字符」范围,因此通常只按1个字符计算,视觉上很醒目却不会大量占用字数。
  • 如需查看各编码下的字节数,请使用姊妹工具「字符串字节数统计」;如需检测字符编码,请使用「字符编码检测」工具。

常见问题

X的计数规则将中文、日文、韩文(CJK)字符以及全角符号按2个加权字符计算。因此英文可以接近280个字符,而纯中文书写实际上大约140个字符就会达到上限。这是为了调节不同语言中每个字符所承载信息量的巨大差异而设置的机制。

这是X(前身为Twitter)公开的开源字数统计算法「twitter-text」中定义的规则。本工具也基于这一公开规范,根据Unicode码点范围将字符计为1个或2个。

大多数表情符号由Unicode的一个辅助平面码点(代理对)表示,由于不属于CJK或全角字符范围,按加权规则计为1个字符。不过由多个码点组合而成的合成表情符号(如家庭表情符号)在内部由多个码点构成,即使外观上是一个整体,在计数上也可能算作多个字符。

姊妹工具「字符串字节数统计」测量的是在UTF-8、Shift_JIS等编码下,将字符串存储或传输为数据时所需的实际字节数。而本工具计算的是用于判断社交媒体发帖上限的「加权字符数」,两者的目的和计算方法都不同。

2017年之前,所有语言的上限都是140个字符。当时将CJK语言按2个字符计算的加权规则就已经存在。当上限对英语等语言翻倍至280字后,CJK语言用户也能够发布与英语用户大致相当的文字量。
ツールくん

闲话 ― 为什么X要对字符进行「加权」计数

Twitter(X的前身)最初采用140字符上限时,英语用户经常抱怨140个字符太短了。因为一个字母所承载的信息量远小于一个汉字,同样是140个字符,中文可以描写小说中的一个完整场景,而英文却只能写出20到30个单词左右。为了消除这种不公平,Twitter于2017年将英语等「单字节」语言的上限翻倍至280个字符,同时将中日韩(CJK)语言实际上维持在相当于140个字符(加权280字符)的水平,这是考虑到不同语言信息密度差异所做的调整。

这种「加权字符数」的理念其实早在短信(SMS)领域就已存在。标准GSM编码的短信通常上限为160个字符,但只要包含一个不属于标准7位GSM字符集的表情符号或中文字符,编码方式就会切换为UCS-2,上限骤降至70个字符。「使用某种语言的一个字符就会使可用字数减半」这一现象,与X的字符加权规则一样,都体现了内部文字编码与用户体验之间有趣的联系。

此外,加权规则也适用于表情符号:大多数表情符号只计为1个字符,但通过零宽连接符(Zero Width Joiner)组合肤色或性别修饰符的合成表情符号,在内部由多个Unicode码点构成,因此外观上是一个表情符号,计数时却可能算作多个字符。在社交媒体发帖时留意这种「视觉字数」与「系统计数」之间的差异,有助于避免意外超出字数上限。

→ 查看全部趣味知识