2012-12-14 61 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的一部分。