无法用印地语发送短信

时间:2014-04-03 07:46:51

标签: php api sms

我需要在印地文发送短信,为此我需要通过网址传递hindi字符串。

当我在php中进行操作时,我在字符串上使用了urlencode($hindimessage)并通过file_get_contents()传递了完整的URL。在执行时我得到了错误:

Warning: file_get_contents(http://IP GOES HERE/smpp/sendsms?username=$name&password=******&to=$contact&from=DEMOTT&coding=3&&text=%E0%A4%AE%E0%A4%A8%E0%A5%80%E0%A4%B7+%E0%A4%95%E0%A5%81%E0%A4): failed to open stream: HTTP request failed! HTTP/1.1 505 HTTP Version Not Supported

不使用urlencode(),服务器将文本视为EMPTY STRING并拒绝。

我也尝试过使用utf8_encode()编码。我在诸如ही ....

之类的HTML标签中收到了消息

但是当我直接使用API​​ URL时,我能够在hindi中重新发送消息,因为API是Unicode API编码= 3用于印地文文本。(即API工作正常)

请告知我需要采用何种方式来发送印地语和英语信息。

先谢谢

2 个答案:

答案 0 :(得分:1)

如果您在urlencode()函数中调用URL,则需要

file_get_contents()

您需要采用 CURL 来发送印地语和英语信息。

 $smsgatewayurl = 'http://IP GOES HERE/smpp/sendsms';
 $post_data = array(); // All params including text message

 $ch = curl_init();
 curl_setopt($ch, CURLOPT_URL, $smsgatewayurl);
 curl_setopt($ch, CURLOPT_POST, true);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
 curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
 $output = curl_exec($ch);
 curl_close($ch);

与file_get_contents函数相比,CURL是调用第三方API的最佳选择。我用弹簧边缘短信网关测试了上述功能,包括印地文。

答案 1 :(得分:0)

设置dcs coding = 8并将您的印地语字符转换为Unicode字符并将其放在文本字段中。这样可以。