Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Problema de acentos de saída JSON


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 .