短信编码

因为短信模板字数限制的缘由,查询信息以下:测试

在上世纪80年代,因为当时的技术条件有限,无线传输的带宽不是很高,而且主要用于汽车电话上,这就要求手机短信要言简意赅。编码

而当时短信技术的主要发明人Hillebrand为了听从这一要求,在打字机上随意地打出几条字句组成信息进行试验。当完成打字并开始检查字句的字符数时,他发现这些信息每条都只有1-2行的长度,总字符数也小于160个。spa

后来他说:“对于人们平常使用,这些数字足够了。”就这样,他决定将160个字符做为手机短信的长度上限,也确立了今天手机短信的字符数限制数。code

手机短信只能编辑70个汉字、160个纯英文字符背后的秘密

如今根据国际标准,基于英文ASCII采用7位编码,若是发送纯英文字符,1120位的限额能够传送1120÷7=160个字符。当传送的字符中包含中文在内的双字节字符,不论中文仍是其余文字,全角仍是半角,都必须采用2个字节的8位编码,所以1120÷8÷2=70个字符,即最多传送70个汉字。(亦即只要短信中包含了一个双字节字符,则全部的单个字符都会被当作双字节字符。因此用mb_strlen()方法是没有问题的。)get

现在,短信已为全世界手机用户所熟悉和使用;同时在不少年的时间里成为了各大通讯运营商额生财之道。it

如下为知乎回答:io

7位元字符就是指标准ASCII去掉最高位的0。以这种方式进行编码,在美国这样的国家,发送的短信字符都是ASCII码表里的,因此不必浪费一个字位。字符编码

而短信协议支持7字位、8字位、16字位3种编码,7字位用于美国,能够发送160个字母,8字位用于欧洲国家,16字位用于中日韩俄等国家,使用UCS-2编码。而UCS-2把全部Unicode字符编码为2字节,因此即便英文字母也会编码成2个字节。模板

使用Windows Mobile 6系统作测试,新建短信后输入一个英文字母,下面显示1/160,再输入一个显示2/160,这就是7字位状态,能够在140字节里装下160个字符。当再输入一个汉字的时候,下面的显示马上变成3/70,这就是16字位状态,每一个字符都占2个字节,140字节只能装下70个字符,哪怕里面是69个英文字符加1个汉字。方法

若是短信超过长度,那么系统就自动分红多条短信来发。由于要加入一些标识性字符以表示顺序,因此英文每条153个,中文每条67个。接收方若是是新一点的手机就会把这几条合并后显示给用户,老一点的手机就会分别显示每条短信。

做者:知乎用户 连接:https://www.zhihu.com/question/20111231/answer/14012285 来源:知乎 著做权归做者全部。商业转载请联系做者得到受权,非商业转载请注明出处。

相关文章
相关标签/搜索