Cela n'a pas vraiment d'importance. Lorsque le json est décodé, ils redeviennent des caractères.
Si vous utilisez php 5.4>=, vous pouvez passer JSON_UNESCAPED_UNICODE
à json_encode
:
json_encode( $data, JSON_UNESCAPED_UNICODE )
Mais encore une fois, les échappements unicode fonctionnent tout aussi bien et sécurisent les données ascii.
Modifier :
Il semble que vos données aient déjà été foutues, même avant json_encode
. Vous l'avez "double encodé" en utf-8, semble-t-il.
Utilisez-vous quelque chose comme utf8_encode
? Vous n'avez rien à faire dans votre code lorsque vous l'insérez dans votre base de données. Si vous avez inséré les données dans la base de données en utilisant utf8_encode
, alors cela explique le double encodage. Tout ce dont vous avez besoin est que les données soient utf-8 et aient mysql_set_charset( 'utf8' )
avant d'insérer.
Il est intéressant de savoir que si votre json a un unicode non échappé, le json ne peut pas être exécuté en tant que javascript
même si vous ajoutez des parenthèses si le json contient U+2028
ou U+2029
.