JasonWang's Blog

GSM短信的发送与接收

GSM中,短消息(SMS,Short Message Service)有两种发送模式,一个是文本模式(所有字符都以可读的字符发送),一种是PDU模式。文本模式下,SMS字符都依照GSM 03.38标准中的默认的7-bit字符表进行编码(表格如下):

GSM3.38 charsets

在PDU(Protocol Data Unit)模式下,SMS通过编码成特定的二进制串发送出去,在该模式下,PDU数据不仅包含了消息字符,还包括很多元数据,比如短信中心地址(SMSC),字符编码格式以及时间戳等。根据ETSI标准(GSM 03.40 & GSM 03.38), 单条短信采用7-bit编码时最长可达160个字符,若采用8-bit字符编码则最多包含140个字符,而对于中文、韩文以及日文等东亚文字通常需要16-bit编码,则实际上能发送的文本长度只有70个字符,因此发送长短信时,需要将长短信分割成多个单一的短信(每条短信的长度不超过160个字符)。