Isso realmente não importa. Quando o json é decodificado, eles se tornam caracteres novamente.
Se você usa php 5.4>=, você pode passar
JSON_UNESCAPED_UNICODE
para json_encode
:json_encode( $data, JSON_UNESCAPED_UNICODE )
Mas, novamente, os escapes unicode funcionam tão bem e tornam os dados ASCII seguros.
Editar:
Parece que seus dados já estavam estragados, mesmo antes de
json_encode
. Você o "codificou duas vezes" como utf-8, parece. Você está usando algo como
utf8_encode
? Você não precisa fazer nada em seu código ao inserir em seu banco de dados. Se você inseriu os dados no banco de dados usando utf8_encode
, então isso explica a codificação dupla. Tudo que você precisa é que os dados sejam utf-8 e tenham mysql_set_charset( 'utf8' )
antes de inserir. É interessante saber que se o seu json tiver unicode sem escape, o json não poderá ser executado como javascript mesmo se você adicionar parênteses se o json contiver
U+2028
ou U+2029
.