当我向包含 @ char 的 kannel 发送消息时遇到问题。例如,我发送了“@Test”,但手机收到了“i Test”之类的信息。
这是 kannel 错误吗?如果是这样,有人有补丁吗?
当我向包含 @ char 的 kannel 发送消息时遇到问题。例如,我发送了“@Test”,但手机收到了“i Test”之类的信息。
这是 kannel 错误吗?如果是这样,有人有补丁吗?
@ 符号的问题在 SMS 中非常流行,因为 GSM 中的这个字符有 0x00 代码,而不是 ASCII 或 UTF-8 中的 0x40。
要正确处理此字符和其他一些字符,建议在通过 Kannel 发送消息时提及以下参数:
这种情况下,Kannel 将自己转换字符(如果使用 libiconv 构建)。
例子:
http://127.0.0.1:13013/cgi-bin/sendsms?...&coding=0&charset=utf-8&text=test+@+sign
如果您通过 SMPP 连接到 SMSC,可能会出现另一个问题。一些平台可能使用不同于标准的字符集。例如,它可能是 ASCII。
要解决此问题,您可以对配置文件的正确group = smsc部分使用alt-charset参数:
group = smsc
smsc = smpp
...
alt-charset = "ASCII"
要对此进行调试,我建议为 SMSC 连接log-level = 0添加日志记录,并检查协议转储以查看从 Kannel 发送到 SMSC 的确切内容。通常,@ 符号应该是 0x00 字符。