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
.