天语A905超长短信的故事

超长短信的故事
短信协议规定:一条短信的内容最多为140个字节 , 相当于140个英文字母(当然也包括数字和符号)或70个汉字 。但可以使用压缩的方法 , 一次发送160个字符 , 但仅适用于发送纯英文的情况 。这是因为一个字节是8位 , 而一个字符实际只用7位 。如果1个字节放一个字符 , 那每个字节就会浪费1位 。压缩就是把这浪费的1位也用上:把第2个字符的1个位拼到第1个字节 , 再把第3个字符的2个位 , 拼到第2个字节 , 以此类推 , 160个字符就被压缩到140个字节中了 , 实现一次发送160个字符 。但对汉字而言 , 依照UNICODE编码 , 每个汉字占2字节 , 所以一次最多只能发送70个 。对于超过70个汉字的短信 , 就是我们这里要说的“超长短信” 。
这里所说的“一次发送” , 也就是按照一条短信收费的意思 。有的朋友可能觉得 , 我的手机一次可以发送几百个汉字呢!这实际上是你的手机在发送时 , 做了处理 , 自动按70个字一条的原则 , 拆分成多条发送了!你可能没觉察到 , 但电信部门却已经按多条扣掉你的短信费了!所谓70个汉字这种说法也是不够准确的 。实际上 , 包含至少1个汉字的短信 , 其中每一个字符 , 都按一个汉字计数 。例如:“新的1年开始 , 祝好事接2连3 , 心情4季如春 , 生活5颜6色 , 7彩缤纷 , 偶尔8点小财 , 烦恼抛到9霄云外!请接受我10心10意的祝福 。”这条短信 , 其中的数字、逗号、感叹号也都按汉字计算 。
老型号的手机 , 有的会自动限制输入的字数 , 超过70个 , 就输不进去了;如果没有限制 , 就会发送失败 。现在市面上销售的手机 , 几乎都有自动分拆的功能 , 而且也有将收到的由超长短信拆分的多条自动拼接成一条的功能 。使得有些朋友误以为发了几百个字 , 才花了1毛钱 。电信能那么傻么?
【天语A905超长短信的故事】对于自己开发短信收发软件的朋友 , 在处理超长短信时 , 必须考虑拆分和拼接的问题 。短信中心不会替你拆分 , 超过70个汉字 , 就无法发送成功 。北京移动为了照顾那些老型手机 , 以10086发送的超过70个字的短信 , 每条的头上 , 都带有(1/x)、(2/x)之类的表示共几条 , 第几条的提示 。这当然也是一种拆分方法 , 接收端也不必考虑拼接问题 , 但这无形中每条就占用了5个字 , 而且收信人阅读也不方便 。如果刚巧拆分的位置比较敏感 , 还会把意思给弄拧了 。

    推荐阅读