本文主要是介绍SMS编码及解码规范(2),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
例2 发送:SMSC号码是+8613800250500,对方号码是13851872468,消息消息内容是“你好!”,从手发出的PDU串可以是:
08 91 68 31 08 20 05 05 F0 11 00 0D 91 68 31 58 81 27 64 F8 00 08 30 30 21 80 63 54 80 06 4F 60 59 7D 00 21
对照规范,以上数据信息的含义见表2
表2 PDU串数据信息说明
分段 | 含义 | 说明 |
08 | SMSC地址信息的长度 | 共8个8位字节(包括91) |
91 | SMSC地址格式(TON/NPI) | 用国际格式号码(在前面加“+” |
68 31 08 20 05 05 FD | SMSC地址 | 8613800250500,补”F”凑成偶数个 |
11 | 基本参数(TP-MTI/VFP) | 发送,TP-VP用相对格式 |
00 | 消息基准值(TP-MR) | 0 |
0D | 目标地址数字个数 | 共13个十进制数 |
91 | SMSC地址格式(TON/NPI) | 用国际格式号码(在前面加“+” |
68 31 58 81 27 64 F8 | 目标地址(TP-DA) | 8613851872468,补”F”凑成偶数个 |
00 | 协议标识(TP-TID) | 是普通GSM类型,点到点方式 |
08 | 用户信息编码方式(TP-DCS) | UCS编码 |
30 30 21 80 63 54 80 | 时间戳(TP-SCTS) | 2003-3-12 08:36:45 +8时区 |
06 | 用户信息长度(TP-UDL) | 实际长度6个字节 |
4F 60 59 7D 00 21 | 用户信息(TP-UD) | “你好” |
下面详细介绍7-bit和UCS2编码
在PDU Mode中,可以采用三种编码方式来对发送的内容进行编码,它们是7-bit、8-bit和UCS2编码。7-bit编码用于发送普通的ASCII字符, 它将一串7-bit的字符(最高位为0)编成8-bit的数据,每8个字符可“压缩”成7个,8-bit编码通常用于发送数据消息,比如略图片和*** 等;而UCS2编码用于发送Unicode字符。在这三种编码方式下,PDU串的用户信息(TP-UD)璺最大容量(可以发送的短消息的最大字符数)分别 是160、140和70.这里,将一个杋英文字母、一个汉字和一个数据字节视为一个字符。
需要注意的是,PDU 串的用户信息长度(TP-UDL),在各种编码方式下意义有所不同。7-bit编码时,指原始消息的字符个数,而不是编码后的字节数。8-bit编码时, 就是字节数。UCS2编码时,也昌字节数,等于原始短消息的字节数的两倍,如果用户信息(TP-UD)中存在一具头(基本参数的TP-UDHI为1),在 所有编码方式下,用户信息长度(TP-USL)都等于头长度与编码后字节数之和。如果采用GSM03.42所建议的压缩法(TP-DCS的高3位为 001),则该长度也是压缩编码后字节数或头长度与压缩编码后字节数之和。
这篇关于SMS编码及解码规范(2)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!