中文短信编码(一)

目前,发送短消息常用Text和PDU(Protocol Data Unit,协议数据单元)模式。使用Text模式收发短信代码简单,实现起来十分容易,但最大的缺点是不能收发中文短信;而PDU模式不仅支持中文短信, 也能发送英文短信。PDU模式收发短信可以使用3种编码:7-bit、8-bit和UCS2编码。7-bit编码用于发送普通的ASCII字符,8- bit编码通常用于发送数据消息,UCS2编码用于发送Unicode字符。一般的PDU编码由A B C D E F G H I J K L M十三项组成。
A:短信息中心地址长度,2位十六进制数(1字节)。
B:短信息中心号码类型,2位十六进制数。
C:短信息中心号码,B+C的长度将由A中的数据决定。
D:文件头字节,2位十六进制数。
E:信息类型,2位十六进制数。
F:被叫号码长度,2位十六进制数。
G:被叫号码类型,2位十六进制数,取值同B。
H:被叫号码,长度由F中的数据决定。
I:协议标识,2位十六进制数。
J:数据编码方案,2位十六进制数。
K:有效期,2位十六进制数。
L:用户数据长度,2位十六进制数。
M:用户数据,其长度由L中的数据决定。J中设定采用UCS2编码,这里是中英文的Unicode字符。
PDU编码协议简单说明
例1 发送:SMSC号码是+8613800250500,对方号码是13693092030,消息内容是“Hello!”。从手机发出的PDU串可以是
08 91 68 31 08 20 05 05 F0 11 00 0D 91 68 31 96 03 29 30 F0 00 00 00 06 C8 32 9B FD 0E 01
对照规范,具体分析:
分段 含义 说明
08 SMSC地址信息的长度 共8个八位字节(包括91)
91 SMSC地址格式(TON/NPI) 用国际格式号码(在前面加‘+’)
68 31 08 20 05 05 F0 SMSC地址 8613800250500,补‘F’凑成偶数个
11 基本参数(TP-MTI/VFP) 发送,TP-VP用相对格式
00 消息基准值(TP-MR) 0
0D 目标地址数字个数 共13个十进制数(不包括91和‘F’)
91 目标地址格式(TON/NPI) 用国际格式号码(在前面加‘+’)
68 31 96 03 29 30 F0 目标地址(TP-DA) 8613693092030,补‘F’凑成偶数个
00 协议标识(TP-PID) 是普通GSM类型,点到点方式
00 用户信息编码方式(TP-DCS) 7-bit编码
00 有效期(TP-VP) 5分钟
06 用户信息长度(TP-UDL) 实际长度6个字节
C8 32 9B FD 0E 01 用户信息(TP-UD) “Hello!”

转自bbs.sendsms.cn

时间: 2025-01-04 05:35:02

中文短信编码(一)的相关文章

如何使用短信猫发送中文短信

使用短信猫收发短信,原理是通过串口通信发送AT指令.当你发送中文短信时,你会又喜悦又困惑,短信确实收到了,但是是乱码的.本文介绍如何正确发送中文短信. AT AT\r\r\nOK\r\n 设置modem为SMS text mode AT+CMGF=1<ENTER> AT+CMGF=1\r\r\r\nOK\r\n 查询当前参数 AT+CSMP?<ENTER> AT+CSMP?\r\r\r\n+CSMP:1,167,0,0\r\n\r\nOK\r\n displays the code

GSM开发 手机发送短信控制LED,返回中文短信,C程序源代码【测试】

[谢绝转载!][谢绝转载!][谢绝转载!] [说明] 实物连接图如下: [短信控制] 发送短信到GSM模块,收到相应的指令对应板子上的灯亮灭. 然后模块会向手机发送一条中文短信 [源代码]目前仍然处于开发中..... /****************************** 工程名  :短信控制家电 1 先用USB转TTL模块测试模块好用,并修改波特率到9600(AT+IPR=9600)再用单片机调试 2 51单片机晶振 11.0592MHz,12M不可以用   3 如果模块无开机自启动电

ADB 发送中文短信

最近好多朋友说adb 不支持发送中文的短信,也不知道为啥要用adb 来发送短信,昨天想到这个问题,所以修改了一下自己的adb,支持发送中文的短信了. adb shell am start -a android.intent.action.SENDTO -d sms:10086 --es sms_body 中文 下载地址: http://bcs.duapp.com/myandroidtools/AndroidAdb.exe 只公开可执行程序,不公开源代码,喷子们看清楚,不要乱喷. 需要更详细的可以

短信编码方式菜单

目前Smart phone里Message菜单里没有让用户选择短信编码方式的菜单,Android手机对于短信编码方式的做法是:优先使用GSM 7bit去编码,如果短信里有些字符是无法用GSM 7bit编码的,则采用UCS2去编码.有些客户希望做成像某些feature phone那样,能有菜单让用户去选择短信的编码方式. [SOLUTION] MmsConfigImpl.java --> isEnableSmsEncodingType这个方法里,将return false 修改为 return t

SMS短信PDU编码

目前,发送短消息常用Text和PDU(Protocol Data Unit,协议数据单元)模式.使用Text模式收发短信代码简单,实现起来十分容易,但最大的缺点是不能收发中文短信:而PDU模式不仅支持中文短信,也能发送英文短信.PDU模式收发短信可以使用3种编码:7-bit.8-bit和UCS2编码.7-bit编码用于发送普通的ASCII字符,8-bit编码通常用于发送数据消息,UCS2编码用于发送Unicode字符.一般的PDU编码由A B C D E F G H I J K L M十三项组成

C# 通过串口发送短信

手机短信群发作为企业日常通知,公告,天气预报等信息的一个发布平台,在于成本低,操作方便等诸多特点,成为企业通讯之首选.本文介绍短信的编码方式,AT指令以及用C#实现串口通讯的方法. 前言目前,发送短信的方式主要有三种: 1.网关方式:向当前电信部门申请,不需要另外设备.但是费用相对来说,比较高,以目前上海移动公司推出的短信群发套餐来说,对于中小企业的短信息的发送数量来看, 短信群发和打电话相比,几乎没有什么优势.对于几万人的大公司而言,可能很便宜.对于几百人甚至更少人的公司来说,这种方式根本不划

使用 AT 命令实现西门子短信猫收发短信实例

通过AT指令对西门子短信猫收发短信的控制共有三种实现途径: (1) 最初的 Block 模式(2) 基于 AT 命令的 Text 模式 (3) 基于 AT 命令的 PDU 模式 本文记录的大量的TC35/TC35T 实验数据,总结了使用TC35/TC35T 短信猫收发短信的方法. 准备工作: 使用 TC35 收发短信息,用户必须准备一张已开通短信息服务 SIM 卡,并将其插入 MC2002 之 TC35 扩展模块 SIM 卡座中或 TC35T 的 SIM 卡座中. 使用 PC 配合 TC35T

西门子S7200 PLC发短信应用方案

西门子PLC发短信方案概述 为了实现无人值守,在设备发生故障时,通过短信或者拨号的方式,通知值班人员,在PLC控制系统中获得了广泛的应用.传统的实现方式一般采取通过PLC的通讯口外接短信猫的方式,通过PLC的自由通讯协议,控制PLC发出短信.此类方案缺陷在于: 1.程序复杂,需要熟悉PLC自由协议编程,AT指令集,如果需要发出中文短信,还需要UNICODE编码,非常麻烦,因此,使用短信猫的方式,一般只实现简单的报警. 2.可靠性差,普通短信猫很多并非为恶劣的工业环境设计,多采用国产模块或拆机TC

如何使用 ATK-SIM900A 模块进行中英文的短信发送

常见的at指令集 AT+CNMI,用于设置新消息指示.发送:AT+CNMI=2,1,设置新消息提示,当收到新 消息,且 SIM 卡未满的时候,SIM900A 模块会返回数据给串口,如:+CMTI: "SM",2,表 示收到接收到新消息,存储在 SIM 卡的位置 2. AT+CMGF,用于设置短消息模式,SIM900A 支持 PDU 模式和文本(TEXT)模式等 2 种模式,发送:AT+CMGF=1,即可设置为文本模式. AT+CSCS,用于设置 TE 字符集,默认的为 GSM 7 位缺