2012-12-14 31 views
0

假设我们有其与SMSC并用 移动站的SMSC通信的ESME。如果文本消息包含需要转义的字符 ,则将使用ESC(0x1B)符号。但是,我认为ESC 是GSM字母表中的一个控制字符,因此Latin-1将用于编码。 (根据SMPP v3.4规范第8页)。进一步假设从SMSC到移动台的可用 编码是GSM默认字母表。是否有可能 解释ESME编码Latin-1的转义字符(ESC)? 总之有什么奇怪的字符会出现在逃避GSM ESME短信的字符可能由SMSC和移动台被误解的时候?SMPP-GSM数据编码

回答

0

需要大量使用的编码取决于所使用的编码格式值。假设你使用data_coding = 0这意味着“默认字母”,那么它仍然取决于你的SMSC的“默认字母”。

例如,有它运行的是Latin1的字符集为SMSC进行,但字符这不是GSM默认字母表的一部分需要进行转义。

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

最后,如果您的SMSC使用GSM和ESME使用Latin1的,那么奇怪的字符可能出现,因为GSM有例如希腊字符不属于Latin1的一部分。