GSM 短信编码与协议分析 1 短信基本原理 由 ESTI 制订的SMS 规范中,一共有三种方式来发送和接收SMS 信息:Block Mode, Text Mode和 PDU Mode
Block Mode 已很少使用
Text Mode 是纯文本方式,可使用不同的字符集,从技术上说也可用于发送中文短消息,但国内手机基本上不支持,主要用于欧美地区
PDU Mode 被所有手机支持,可以使用任何字符集,这也是手机默认的编码方式
PDU 串表面上是一串ASCII 码,由‘ 0’ -‘ 9’、 ‘ A’ -‘ F’这些数字和字母组成
它们是8 位字节的十六进制数,或者BCD 码十进制数
PDU 串不仅包含可显示的消息本身,还包含很多其它信息,如SMS 服务中心号码、目标号码、回复号码、编码方式和服务时间等
在PDU Mode 中,可以采用三种编码方式来对发送的内容进行编码,它们是7-bit、 8-bit 和 UCS2 编码
7-bit编码用于发送普通的ASCII 字符,它将一串7-bit 的字符(最高位为0)编码成8-bit 的数据,每 8 个字符可“压缩”成 7 个
我们通常在短信中所说的ASCII 编码方式,实际上是指7-bit编码,而7-bit 编码方式不仅能表示普通的ASCII 字符,还可以表示一些特殊字符,因此7-bit 编码和ASCII 编码实际上是两个完全不同的概念,它们仅仅在一些普通的ASCII 字符上编码相同;8-bit 编码通常用于发送数据消息,比如图片和铃声等;而UCS2 编码用于发送 Unicode 字符
PDU 串的用户信息(TP-UD)段最大容量是140 字节,所以在这三种编码方式下,可以发送的短消息的最大字符数分别是160、 140 和 70
这里,将一个英文字母、一个汉字和一个数据字节都视为一个字符
2 短信协议栈 GSM 定义的短信基本架