Encoding 使用get-url sms服务kannel对消息内容进行url编码

Encoding 使用get-url sms服务kannel对消息内容进行url编码,encoding,kannel,Encoding,Kannel,我使用kannel向具有smpp链接的移动运营商交换消息。 对于MO消息,我设置了一个kannel SMS-SERVICE,并设置了一个get url,如下所示: group = sms-service keyword = default get-url = "http://xx.xx.xx.xx:8080/mo-messages/get?coding=%c&charset=%C&from=%p&to=%P&content=%a" concatenation =

我使用kannel向具有smpp链接的移动运营商交换消息。 对于MO消息,我设置了一个kannel SMS-SERVICE,并设置了一个get url,如下所示:

group = sms-service
keyword = default
get-url = "http://xx.xx.xx.xx:8080/mo-messages/get?coding=%c&charset=%C&from=%p&to=%P&content=%a"
concatenation = true
forced-smsc = telecom
catch-all = true
max-messages = 0
sent text in mobile : Hello@
and url requested by kannel : 
http://xx.xx.xx.xx:8080/mo-messages/get?coding=0&charset=UTF-8&from=xxxx&to=xxxx&content=Hello%C2%A1 
this is incorrect url encoded @ in content : %C2%A1
当我用手机向我的快捷码发送“UCS2”消息时,kannel会向我的get url发送一个请求,并使用正确的编码文本,如下所示:

sent text in mobile : سلام@
and url requested by kannel : 
http://xx.xx.xx.xx:8080/mo-messages/get?coding=0&charset=UTF-8&from=xxxx&to=xxxx&content=%D8%B3%D9%84%D8%A7%D9%85%40
this is correct encoded @ in content : %40
但当我发送一条“GSM ascci 7bit”消息时,问题就出现了,@在文本中并没有正确地进行url编码。如下图所示:

group = sms-service
keyword = default
get-url = "http://xx.xx.xx.xx:8080/mo-messages/get?coding=%c&charset=%C&from=%p&to=%P&content=%a"
concatenation = true
forced-smsc = telecom
catch-all = true
max-messages = 0
sent text in mobile : Hello@
and url requested by kannel : 
http://xx.xx.xx.xx:8080/mo-messages/get?coding=0&charset=UTF-8&from=xxxx&to=xxxx&content=Hello%C2%A1 
this is incorrect url encoded @ in content : %C2%A1
我捕获了wireshark请求的所有Kannel URL。 我无法使用任何字符集将此URL编码字符串转换为@。 kannel MO-RECODE特性对此没有影响,我使用真MO-RECODE和假MO-RECODE进行了测试

我在Centos x64 6.7的Kannel 1.5.0和Kannel 1.4.4上测试了它

我找不到任何解决办法

谢谢