当我向包含@ char的kannel发送消息时,我遇到了问题.例如,我发送了"@ Test",但是手机收到了类似"i Test"的内容.
这是kannel的错误吗?如果是这样,有人有补丁吗?
小智 9
@符号的问题在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
Run Code Online (Sandbox Code Playgroud)
如果您通过SMPP连接到SMSC可能会发生另一个问题.一些平台可能使用与标准不同的字符集.例如,它可能是ASCII.
要解决此问题,您可以使用alt-charset参数来获取配置文件的正确group = smsc部分:
group = smsc
smsc = smpp
...
alt-charset = "ASCII"
Run Code Online (Sandbox Code Playgroud)
为了调试这个,我建议为SMSC连接log-level = 0添加日志记录并检查协议转储,以查看从Kannel到SMSC的确切发送内容.通常@符号应为0x00字符.