将@ char发送给kannel的错误

时间:2011-12-30 09:51:20

标签: kannel

当我向包含@ char的kannel发送消息时,我遇到了问题。   例如,我发送了“@ Test”,但手机收到了一些东西   比如“我测试”。

这是kannel的错误吗?如果是这样,有人有补丁吗?

1 个答案:

答案 0 :(得分:9)

@ sign的问题在SMS中非常流行,因为GSM中的这个字符在ASCII或UTF-8中有0x00代码而不是0x40。

要正确处理此字符和其他字符,建议在通过Kannel发送邮件时提及以下参数:

  • 编码 - 0(默认GSM)或2(如果您发送Unicode字符)
  • charset - 您发送给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字符。