我正在查找GSM短信的格式。
当使用PDU模式时,TP-UD字段被称为三个中的一个,7位用于ascii符号,8位用于数据,UCS2用于unicode,如日语。
有一个例子,Hello!
有TP-UD字段C8 32 9B FD 0E 01
。为什么?它不是ascii,不是GSM03.38的基本字符集。
如果用户数据是ascii字符和日语的混合,那么它是unicode吗?
感谢。
答案 0 :(得分:1)
通过查看数据编码方案参数值来选择短消息内容编码类型(7位,8位,16位等)。如果消息内容包含GSM默认字母和Unicode的混合字符(例如俄语,阿拉伯语,日本等),则数据编码方案值必须设置为16位(UCS-2)。 GSM 7位默认字母适用于英语和多种欧洲语言。有限的几种语言(例如葡萄牙语,西班牙语,土耳其语)可以使用3GPP 23.038中定义的带有国家语言移位表的7位编码。 8位编码专用于二进制短消息。
尝试Cloudhopper Java SMPP API Charset实用程序类
msgChars = CharsetUtil.encode("öàß", CharsetUtil.CHARSET_GSM);
msgChars = CharsetUtil.encode("Точно так и было!", CharsetUtil.CHARSET_UCS_2);