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