php - Clickatell 阿拉伯语文本出现乱码

标签 php character-encoding clickatell

我正在尝试使用 php 从 clickatell 短信提供商发送阿拉伯语文本,但我所能发送的只是乱码文本。我用于测试的文本是“غثس هوس”。

我曾尝试使用 iconv 将消息文本编码为 Windows-1256,1250 和 ISO-8859-6 格式,但每次它只会发送乱码文本。

任何人都可以给我一些我缺少的东西的指示吗?

提前致谢

最佳答案

好的,这是给后来走上这条路的人的。找到解决方案 here 保留 Esailija 答案中的代码

<?php
$text = "غثس هفس خن";
$arr = unpack('H*hex', iconv('UTF-8', 'UCS-2BE', $text));
$message = strtoupper($arr['hex']);

$username = '';
$password = '';
$API_ID = '';
$to = '';

$url = "http://api.clickatell.com/http/auth?user=$username&password=$password&api_id=$API_ID";
$ret = file($url);
$sess = explode(":",$ret[0]);
if ($sess[0] == "OK") {
    $sess_id = trim($sess[1]);
    $url = "http://api.clickatell.com/http/sendmsg?session_id=$sess_id&to=$to&text=$message&unicode=1";
    $ret = file($url);
    $send = explode(":",$ret[0]);

    if ($send[0] == "ID") {
        echo "success - message ID: ". $send[1];
    } else {
        echo "send message failed";
    }
} else {
    echo "Authentication failure: ". $ret[0];
}

关于php - Clickatell 阿拉伯语文本出现乱码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13839466/

相关文章:

php - Clickatell 批处理模板速度慢(PHP、http)

java - Clickatell 显示已发送到网关,但使用 Java 未收到 SMS?

php - 可捕获的 fatal error : Object of class Proxies\__CG__\AppBundle\Entity\Modelo could not be converted to string

javascript - 通过 Ajax 将数据从 Javascript 发送到 JSON、PHP

Clickatell:集成 API key 无效或丢失

c++ - Visual Studio 字符集 'Not set' 与 'Multi byte character set'

Bash:即使将区域设置设置为 UTF-8 后也会出现奇怪的字符: "•"打印为 "ΓÇó"

php - 查询 mariadb 数据库在 phpmyadmin 中有效,但在 php 中无效

php - 如何使用 uploadify 传递表单值

Perl UTF8 编码错误。 LWP::UserAgent->decoded_content 或 Encode::decode 都不起作用。其他想法?