我需要用印地语发送短信,为此我需要通过URL传递印地语字符串。
当我在 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(),服务器将文本视为空字符串并拒绝。
我也尝试了使用 utf8_encode() 编码。我在 HTML 标签中接收消息,例如 ही
....
但是当我直接使用 API URL 时,我能够接收印地语消息,因为 API 是 Unicode API 编码 = 3 为印地语文本启用。(即 API 工作正常)
请告知我需要采用哪种方法来用印地语和英语发送消息。
提前致谢
如果你在函数中调用 URL,urlencode()
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 的最佳选择。我已经使用弹簧边缘短信网关(包括印地语文本)测试了上述功能。
设置 dcs 编码 =8 并将您的印地语字符转换为 Unicode 字符并将其放入文本字段中。这将起作用。