假设我们有一个 ESME 与 SMSC 通信,而 SMSC 与移动台通信。如果文本消息包含需要转义的字符,则将使用 ESC (0x1B) 符号。但是,我认为 ESC 是 GSM 字母表中的控制字符,因此 Latin-1 将用于编码。(根据 SMPP v3.4 规范第 8 页)。进一步假设从 SMSC 到移动台的可用编码是 GSM 默认字母表。是否可以解释 ESME 以 Latin-1 编码的转义字符 (ESC)?简而言之,在转义 GSM ESME 中可能被 SMSC 或移动站误解的文本消息字符时,是否会出现任何奇怪的字符?
问问题
1576 次
1 回答
0
您需要使用的编码很大程度上取决于使用的 data_coding 值。假设您使用 data_coding=0 表示“默认字母”,那么仍然取决于 SMSC 的“默认字母”是哪个。
例如,有些 SMSC 将 Latin1 作为字符集运行,但是不属于 GSM 默认字母表的字符需要转义。
首先,您需要确定哪个是 SMSC 的默认字符集(更好的 SMPP 组件)。0x1b 序列基本上和Latin1 没有任何关系。如果您的 SMSC 正在运行 GSM 并且您想发送一个 € 符号,您可以在 submit_sm 操作的 short_message 字段中发送 0x1b0x65 作为字节序列。
最后,如果您的 SMSC 使用 GSM 而 ESME 使用 Latin1,则可能会出现奇怪的字符,因为 GSM 有例如不属于 Latin1 的希腊字符。
于 2012-12-14T22:50:36.207 回答