SMPP-GSM数据编码

时间:2012-12-14 13:40:42

标签: mobile encoding gsm smpp

假设我们有一个与SMSC和SMSC通信的ESME 一个移动电台。如果文本消息包含需要的字符 转义然后将使用ESC(0x1B)符号。但是,我认为ESC 是GSM字母表中的控制字符,因此Latin-1将用于编码。 (根据SMPP v3.4规范第8页)。 进一步假设可用 从SMSC到移动台的编码是GSM默认字母表。可能吗 解释ESME编码的Latin-1中的转义字符(ESC)? 简而言之,当消除GSM ESME中可能被SMSC或移动台误解的文本消息中的字符时,是否会出现任何奇怪的字符?

1 个答案:

答案 0 :(得分:0)

您需要大量使用的编码取决于使用的data_coding值。假设您使用data_coding = 0表示“默认字母”,那么它仍然取决于您的SMSC的“默认字母”。

例如,有一些SMSC将Latin1作为charset运行,但是不属于GSM默认字母表的字符需要被转义。

首先,您需要确定哪个是SMSC的默认字符集(更好的是SMPP组件)。 0x1b序列基本上与Latin1没有任何关系。如果您的SMSC正在运行GSM并且您想发送一个€符号,则在submit_sm操作的short_message字段中将0x1b0x65作为字节序列发送。

最后,如果您的SMSC使用GSM并且ESME使用Latin1,则可能会出现奇怪的字符,因为GSM具有例如不属于Latin1的希腊字符。