如何僅將阿拉伯字符的編碼從 utf8 更改為 big-endian 以通過 SMS 服務發送 SMS 消息?此代碼不起作用。mb_convert_encoding($str, "UCS-2BE", "auto");結果應該是 這樣的
1 回答

天涯盡頭無女友
TA貢獻1831條經驗 獲得超9個贊
您必須執行以下操作:
檢查編碼和阿拉伯字符的存在。你可以這樣做:
//$text - string that you need to convert
if (mb_detect_encoding ($text) == "UTF-8" && mb_ereg('[\x{0600}-\x{06FF}]', $text)) {
...
}
將字符串轉換為 USC-2BE 編碼。您可以使用iconv函數
iconv("UTF-8", "UCS-2BE", $text)
然后解壓縮為所需的格式(H*hex - 在你的情況下)并轉換為大寫:
if (mb_detect_encoding ($text) == "UTF-8" && self::isArabic($text)) {
$arr = unpack("H*hex", @iconv("UTF-8", "UCS-2BE", $text));
$text = strtoupper($arr["hex"]);
}
而已。它應該工作。
- 1 回答
- 0 關注
- 101 瀏覽
添加回答
舉報
0/150
提交
取消