我尝试通过RoutoMessaging PHP API发送短信。我读了所有文档和示例我能找到的内容。 他们有PHP示例脚本,用于以unicode格式发送SMS:
<?php
// include RoutoSMS class
include("RoutoTelecomSMS.php");
// creating object
$sms = new RoutoTelecomSMS;
// setting login parameters
$sms->SetUssms->SetOwnNum("44792838383838");
$sms->SetType("unicode");
// get values entered from FORM
$sms->SetNumber($number);
$message="04220432043E04580435002004370435043B0435043D04350020043E0
44704380020044104430020043C04380020043F0430043C043504420020043F043E
043C044304420438043B0435002E002E002E";
$sms->SetMessage($message);
// send SMS and print result
$smsresult = $sms->Send();
print $smsresult;
?>
我不明白的是我如何将文本从提交字符串转换为包含在$ message中所需的代码。 任何人都可以建议函数转换$ message的文本吗? 我目前使用的是PHP 5.3.3版。
答案 0 :(得分:1)
您发送的邮件是Cryllic文本。它可能在塞尔维亚语中。它显示为“Твојезеленеочисумипаметпомутиле... ”
解码
header('Content-Type: text/html; charset=utf-8');
$str = "04220432043E04580435002004370435043B0435043D04350020043E044704380020044104430020043C04380020043F0430043C043504420020043F043E043C044304420438043B0435002E002E002E";
foreach(str_split($str, 4) as $char) echo "&#x{$char};";
这就是你对消息进行编码的方式
$string = "Твоје зелене очи су ми памет помутиле...";
$string = mb_convert_encoding($string, 'UCS-2', 'utf8');
for($i =0; $i < strlen($string); $i++)
echo strtoupper(bin2hex($string[$i]));