sql >> Base de Datos >  >> RDS >> Mysql

Problema de acentos de salida JSON

Eso realmente no importa. Cuando se decodifica el json, vuelven a convertirse en caracteres.

Si usa php 5.4>=, puede pasar JSON_UNESCAPED_UNICODE a json_encode :

json_encode( $data, JSON_UNESCAPED_UNICODE )

Pero, de nuevo, los escapes Unicode funcionan igual de bien y hacen que los datos sean seguros en ASCII.

Editar:

Parece que sus datos ya estaban jodidos, incluso antes de json_encode . Parece que lo tiene "doblemente codificado" como utf-8.

¿Estás usando algo como utf8_encode? ? No necesita hacer nada en su código cuando lo inserta en su base de datos. Si insertó los datos en la base de datos usando utf8_encode , entonces eso explica la doble codificación. Todo lo que necesita es que los datos sean utf-8 y tengan mysql_set_charset( 'utf8' ) antes de insertar.

Es interesante saber que si su json tiene unicode sin escape, el json no se puede ejecutar como javascript incluso si agrega paréntesis si el json contiene U+2028 o U+2029 .