Tengo un script PHP que trata con una amplia variedad de idiomas. Desafortunadamente, cada vez que intento usar json_encode
, cualquier salida Unicode se convierte en entidades hexadecimales. ¿Es este el comportamiento esperado? ¿Hay alguna forma de convertir la salida a caracteres UTF-8?
Aquí hay un ejemplo de lo que estoy viendo:
ENTRADA
echo $text;
SALIDA
База данни грешка.
ENTRADA
json_encode($text);
SALIDA
"\u0411\u0430\u0437\u0430 \u0434\u0430\u043d\u043d\u0438 \u0433\u0440\u0435\u0448\u043a\u0430."
JSON_UNESCAPED_UNICODE está disponible en PHP Versión 5.4 o posterior.
El siguiente código es para la versión 5.3.
ACTUALIZADO
html_entity_decode
es un poco más eficiente quepack
+mb_convert_encoding
.(*SKIP)(*FAIL)
omite las barras invertidas y los caracteres especificados porJSON_HEX_*
banderas.fuente
\\
. La versión más nueva toma\\
mayor prioridad que\u
.Te gusta establecer charset y unicode sin escape
fuente
Una solución es codificar primero los datos y luego decodificarlos en el mismo archivo:
fuente
Aquí está mi solución combinada para varias versiones de PHP.
En mi empresa estamos trabajando con diferentes servidores con varias versiones de PHP, así que tuve que encontrar una solución que funcione para todos.
Los créditos deben ir a Marco Gasi y Abu . La solución para PHP> = 5.4 se proporciona en los documentos json_encode.
fuente
La función raw_json_encode () anterior no me resolvió el problema (por alguna razón, la función de devolución de llamada provocó un error en mi servidor PHP 5.2.5).
Pero esta otra solución realmente funcionó.
https://www.experts-exchange.com/questions/28628085/json-encode-fails-with-special-characters.html
Los créditos deben ir a Marco Gasi . Acabo de llamar a su función en lugar de llamar a json_encode ():
fuente
fuente
Desde que preguntaste:
Otra solución es usar utf8_encode .
Esto codificará su cadena a
UTF-8
.p.ej
fuente
el
json_encode()
solo funciona con datos codificados UTF-8.tal vez pueda obtener una respuesta para convertirlo aquí: cirílico-caracteres-en-phps-json-encode
fuente