中文短信格式解析

中文短信格式解析

ID:33654513

大小:105.50 KB

页数:16页

时间:2019-02-28

中文短信格式解析_第1页
中文短信格式解析_第2页
中文短信格式解析_第3页
中文短信格式解析_第4页
中文短信格式解析_第5页
资源描述:

《中文短信格式解析》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、短信格式解析2010年04月26日星期一16:17最近重整一个兄弟的代码,把短信重新分析了一次。以防以后忘了现在就记下来。网上有些格式解析下面这个E文的比较专业http://www.dreamfabric.com/sms/,不过看了怪费劲的。以下是我重整理的。1.短信格式的编码主要是有两种一个是text格式的,明文不用解码一看就懂,一个是PDU格式的,国内的都是的PDU格式的。以下分析的都是PDU格式数据包。2.PDU格式的数据包,发送的数据包和接收的数据包数据段是不一样的。相同是一,他们都是把数据变成字符0123456

2、789ABCDEF。二,都是2个字符算一个数,除了电码号码其的数都是16进制的。3.接收数据包,内容为:“123,测试,test。”,来自电话号18701634332串口AT回复:+CMTI:"MT",37再发送指令读取短信AT+CMGR=37串口AT回复:+CMGR:0,,510891683108100005F0040D91688107614333F200080140821154442318003100320033002C6D4B8BD5002C00740065007300743002OK中间蓝色的就是接收的数据包了。

3、字符描述08SMSC短信中心号码段的长度,不包含08这两个字符,但包含9191Type-of-addressoftheSMSC.短信中心号的类型一般0x91是国际型,0xA1是国内型,遇到国际型的解析的时候就在前面加个+号,大家一般都是这么干的683108100005F0这个是短信中心号码,每两字符互换就是了8613080100500,最后一位F是表示中心号码的结束符,这个F只有在电话号码是奇数位的时候才有。04FirstoctetofthisSMS-DELIVERmessage.意思很多可以不管。0D发信人的号码长度0

4、xD=13位,不包括0D91.91Type-of-address类型和上面一样0x91国际型688107614333F2发信人号码和上面一样解析8618701634332因为是国际型的一般显示为+861870163433200TP-PID.Protocolidentifier.协议头,可以不管08TP-DCSDatacodingscheme,这个很重要,描述了下面的短信内容是以下三种格式中的那一种1.8位ASCII编码2.7位压缩编码3.Unicode16位编码当最上面的4-7位为=>00xx时主要上中间的下面的第3和第

5、4位,也就是bit2和bit3。这里是0x08----->b1000表示Unicode16位编码,国内一般就这个。有些手机会把纯英文的用7位编码发送.Bit3Bit2编码格式007位压缩编码018位ASCII编码10Unicode16位编码11保留01408211544423这个就是发信时间Timestamp(semi-octets),按字节互换解析,基下时间是已经按时区转好了的。时间就是:2010-4-2811:45:44数据字符个数Description012年份后两位2010年402月份   4月822日期   2

6、8日112小时   11点542分      45分442秒      44秒232GMT.时区32/4=8小时18短信内容字符的长度对于Unicode编码,字符为12个1.Unicode的编码的数据来说0x18=24表是一共有24/2=12个Unicode字符"123,测试,test。",实际的数据是24*2=48个ASCII字符组成2.对于7Bit的为说一共是24个字符,实际的数据是24*7/8=21(向上取整)21*2=42;个ASCII字符3.对于8位的编码的来说也是24个字符。实际的数据是48个ASCII字符组

7、成003100320033002C6D4B8BD5002C00740065007300743002短信数据0031这4个ASCII字符表示Unicode编码0x0031,如果是7位的编码是用7位表示字符,但是用8位来存贮。很复杂下面是e文的例子Message"hellohello"。3.发送PDU格式消息例如:向手机18701634332发送内容为:“123,测试,test。”的短信首先发送AT指令AT+CMGS=38串口AT回复:>发送以下ASCII字符串就是PDU格式的短信数据包0031000BA1810761433

8、3F20008A718003100320033002C6D4B8BD5002C00740065007300743002再发送0x1a(Ctrl-z的ASCII码,这个也可以和上面的数据写在一起发送)串口AT回复:+CMGS:221OK字符描述00SMSC短信中心地址,写成0表示从电话内部取中心号码,如果要自己写就按照

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。