如何将编码从utf8更改为big-endian



如何将编码从utf8更改为big-endian,仅用于阿拉伯字符通过短信服务发送短信?此代码不起作用。

mb_convert_encoding($str, "UCS-2BE", "auto");

结果应该是这个

您必须执行以下操作:

  1. 检查编码和是否存在阿拉伯字符。你可以这样做:

    //$text - string that you need to convert
    if (mb_detect_encoding ($text) == "UTF-8" && mb_ereg('[x{0600}-x{06FF}]', $text)) {
    ...
    }
    
  2. 将字符串转换为USC-2BE编码。您可以使用图标功能

    iconv("UTF-8", "UCS-2BE", $text)
    
  3. 然后解压缩为所需的格式(在您的情况下为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"]);
    }
    

就是这样。它应该有效。

最新更新