你现在发微信,想写多少字写多少字,根本不会去数。
但如果你用过早期的微博,或者玩过 Twitter,一定记得那个卡死人的 140 字限制。多一个字都发不出去。
很多人以为这是产品经理的审美偏好,觉得短内容更精炼,更适合社交传播。
想多了。140 就是一道减法。
Twitter 最早其实是个短信服务。Jack Dorsey 2006 年做它的时候,核心想法就是让人用手机短信来发状态更新。你发一条短信到一个号码,它就变成一条推文,你关注的人也能用短信收到。
短信有字数上限。
一条标准 SMS 的载荷是 140 个字节。用英文那套 7-bit 编码,140 字节能塞 160 个字符。这就是短信的天花板,160。
Twitter 要把推文塞进这 160 个字符里面去,但光有正文不够,还得带上发送者的用户名,让收信人知道这是谁发的。用户名大约预留了 20 个字符的位置。
160 减 20,剩 140。
Twitter 的 140 就是这么来的。跟什么内容哲学没关系,就是一条短信的空间,扣掉名字,把剩下的都给你。Twitter 官方 FAQ 里写过这么一句,「We reserve 20 characters for people’s names, and the other 140 are all yours.」

这个 140 本来是给英文短信量身算的。后来 Twitter 从短信扩展到网页和 App,140 就跟着上了岸,变成了一条产品规定,不管你写汉字还是英文字母,每个字符都算 1 个。
新浪微博 2009 年上线,直接对标 Twitter,把 140 字也搬了过来。短信管道其实根本装不下 140 个汉字,微博能发这么多,是因为 140 这个数到了产品层已经跟底层多少字节没关系了。微博抄的是 Twitter 的产品规定,不是短信的物理限制。
说到这个,得把短信自己的来路也讲一下。
短信这东西,一开始压根没打算让人拿来聊天。它是 1980 年代 GSM 手机网络里捎带出来的一个副产品。
当时手机网络要处理通话,需要一套信令通道来做呼叫的建立和挂断。这套信令通道跑的是 SS7 协议,算是整个电话网的神经系统。有工程师发现,信令消息之间有空隙,这点空隙能捎带一小段文字。
短信就这么来的。它是塞在电话信令缝隙里的,算是搭便车,从来不是主角。
搭便车嘛,空间就那么大。协议给短信正文留的位置,最多 140 字节,多一个都塞不下。
那 160 这个数字又是怎么定的呢。
1985 年,一个叫 Friedhelm Hillebrand 的德国工程师,接到了 GSM 委员会的任务,确定短信到底该限多少字符。他在家里的书房,对着打字机敲了一堆随机的句子和日常问题,然后挨个数字符数。发现绝大多数表达都在 160 个字符以内。
他又翻了一堆收到的明信片,发现上面的文字也很少超过 150 个字符。
委员会一开始嫌他方法太土。他后来又搞了一轮更正式的调研,分析了大量电传(Telex)消息,结论一样。160 字符就够了。
这个数字最终写进了 GSM 标准。

这里顺便说一个可能很多人没注意过的事。微博上你能写 140 个汉字,但在真正的短信管道里,中文要用 UCS-2 编码,一个字占两个字节。140 字节除以 2,一条中文短信其实只能装 70 个字。
所以早年用手机发中文短信,超过 70 个字就会被拆成好几段,运营商按段收费。你以为发了一条,账单上可能已经扣了两三条的钱。
后来的事大家都知道了。Twitter 2017 年把上限放宽到 280 字符。微博也在 2016 年取消了 140 字限制。
但那个数字留下的东西,比数字本身活得久。
你现在收到的每一条验证码,每一条银行到账提醒,底下跑的还是那条老管道。140 字节,GSM 信令缝隙里搭便车的。
你以为是产品经理在定义互联网。
其实是 1985 年一个德国工程师,在家里的书房对着打字机数了一下午字符。
