一条最长的短信息约点多少 Byte?

一条最长的短信息约点多少 Byte?


中文 70 (包括标点),英文 160, 160 个字节。


无意间看到一个这个题目,觉得有些奇怪,怎么不是140个字节呢,后来查阅后发现有以下博文:

 

众所周知,一条短信是可以输入70个中文字符的。一个字符是2个字节(Byte)。一个字节是8位(bit).所以通用的计量是 一条短信可以输入70*2*8=1120 bit

一个ASCII码是7bit(128个字符的标准ASCII码),如果你输入的是标准ASCII码的话你,就可以在一条短信中输入1120/7=160个ASCII字符。
比如说 你在第一条短信中输入数字 那么你这一条短信应该是可以输入160个数字的。但是只要你输入一个中文,系统立刻会使用中文的双字节计算标准来重新计算整个短信。比如当你输入123时 系统会提示你 你还可以输入160-3=157个字符。但是你再输入一个“一”时,系统会认为你已经输入了4个中文,提示你还可以输入70-4=66个中文。

 
好了 一条短信可输入字符的长度应该大家都明白了。那么超长短信的字符计算呢?两条短信是不是能够输入160*2=320个字符呢?或者140个中文呢?
不是的。超长短信的计算因为有协议存在的缘故,会有变化。
当第一条短信输入到161个字符时,你会发现系统帮你创建的第二个短信实际上只允许你输入145个字符,第三条短信以及以后的短信会允许你输入153个字符。
如何计算得到?
超长短信需要有协议,所以每一条短信中会贡献7个字符用于协议相关。
当第一条短信达到161个字符时,由于要使用协议,第一条短信必须留出7个字符的长度。因此有7个被挤出来的字符连同第161个字符,一共8个字符就被放到了第二条短信。
第二条短信一共可写160个字符,现在已经被安放了8个字符,还要加上自己协议的7个字符,所以一共有15个字符不可用,160-15=145个字符。因此第二条短信只能写145个字符。
第三条以及以后的短信 就很单纯的只需要留出自己的7个协议字符,因此都是160-7=153个字符。

 

感觉写得不错,特贴此看看。


原文地址:http://wangyuwei.me/?post=19

发布了430 篇原创文章 · 获赞 415 · 访问量 925万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览