我需要在印地文发送短信,为此我需要通过网址传递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()编码。我在诸如ही
....
但是当我直接使用API URL时,我能够在hindi中重新发送消息,因为API是Unicode API编码= 3用于印地文文本。(即API工作正常)
请告知我需要采用何种方式来发送印地语和英语信息。
先谢谢
答案 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字符并将其放在文本字段中。这样可以。