¿Cómo puedo cambiar la codificación UTF-8 a partir de big endian

samilac226:

¿Cómo puedo cambiar la codificación UTF-8 a partir de big endian sólo para los caracteres árabes a enviar mensajes SMS a través del servicio SMS? Este código no funciona.

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

El resultado debe ser similar a este

Marat Badykov:

Usted debe hacer lo siguiente:

  1. comprobar la codificación y la presencia de caracteres árabes. Puede hacerlo así:

     //$text - string that you need to convert
    
     if (mb_detect_encoding ($text) == "UTF-8" && mb_ereg('[\x{0600}-\x{06FF}]', $text)) {
                ...
     }
    
  2. Convertir a cadena USC-2BE encoding.You puede utilizar iconv función

    iconv("UTF-8", "UCS-2BE", $text)
    
  3. Luego de desempaquetado al formato necesario (H * hexagonal - en su caso) y convertido a mayúsculas :

    if (mb_detect_encoding ($text) == "UTF-8" && self::isArabic($text)) {
                $arr = unpack("H*hex", @iconv("UTF-8", "UCS-2BE", $text));
                $text = strtoupper($arr["hex"]);
    }
    

Eso es. Deberia de funcionar.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=342807&siteId=1
Recomendado
Clasificación