Non importa. Quando il json viene decodificato, diventano di nuovo caratteri.
Se usi php 5.4>=, puoi passare JSON_UNESCAPED_UNICODE
a json_encode
:
json_encode( $data, JSON_UNESCAPED_UNICODE )
Ma ancora una volta, gli escape unicode funzionano altrettanto bene e rendono i dati ascii sicuri.
Modifica:
Sembra che i tuoi dati siano già stati rovinati, anche prima di json_encode
. L'hai "codificato doppiamente" come utf-8 sembra.
Stai usando qualcosa come utf8_encode
? Non devi fare nulla nel tuo codice quando lo inserisci nel tuo database. Se hai inserito i dati nel database usando utf8_encode
, questo spiega la doppia codifica. Tutto ciò che serve è che i dati siano utf-8 e abbiano mysql_set_charset( 'utf8' )
prima di inserire.
È interessante sapere che se il tuo json ha unicode senza escape, json non può essere eseguito come javascript
anche se aggiungi parentesi se il json contiene U+2028
o U+2029
.