standard results php jquery json htmlspecialchars

php - results - json con caracteres especiales como é



json tags (3)

Si los escribo como (é) y no los codifico previamente, no se muestra el valor completo en esta entrada de matriz.

¿Qué debo hacer aquí?

En JSON no codificas los valores HTML. Los envía literalmente (é) y configura el tipo de contenido establecido correctamente:

header(''Content-Type: application/json; Charset=UTF-8'');

Declara la codificación de tus datos, por supuesto.

Estoy desarrollando un script de selección dependiente utilizando jQuery, PHP y JSON como respuesta.

Todo va bien, excepto por el uso de caracteres especiales como los franceses (é, è, à ...)

si los precodifico como (& eacute;, & egrave;, & agrave;) (Aquí estoy usando espacios entre el signo y el resto de la palabra para evitar la codificación automática en mi pregunta) funciona pero cuando se procesa con jquery los caracteres no se convierten a lo que deberían ser (é ...), sino que se muestran como están (& eacute;)

Si los escribo como (é) y no los codifico previamente, no se muestra el valor completo en esta entrada de matriz.

¿Qué debo hacer aquí?

Gracias.


Al igual que la primera respuesta.

¿Utiliza una base de datos? Si es Sí, asegúrese de que la tabla de la base de datos esté declarada UFT8 ¿Cómo se declara la página HTML? UTF-8 ¿ES la cadena en el archivo de script PHP? Si es así, asegúrese de que el archivo tenga un formato de archivo UTF-8

También puede usar utf8_encode (para enviar a HTML) y utf8_decode (para recibir) pero no de la manera correcta


Esto funcionó para mí, espero que funcione para cualquier otra persona que experimente problemas similares.

$title = ''é''; $title = mb_convert_encoding($title, "UTF-8", "HTML-ENTITIES"); header(''Content-Type: application/json; Charset="UTF-8"''); echo json_encode(array(''title'' => $title));

La función mb_convert_encoding toma un valor y lo convierte (en este caso) HTML-ENTITIES a UTF-8.

Vea aquí los detalles sobre la función http://php.net/manual/en/function.mb-convert-encoding.php