Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Problem mit Akzenten bei der JSON-Ausgabe

Das ist nicht wirklich wichtig. Wenn der json decodiert wird, werden sie wieder zu Zeichen.

Wenn Sie PHP 5.4>=verwenden, können Sie JSON_UNESCAPED_UNICODE übergeben zu json_encode :

json_encode( $data, JSON_UNESCAPED_UNICODE )

Aber auch hier funktionieren die Unicode-Escapes genauso gut und machen die Daten ASCII-sicher.

Bearbeiten:

Es sieht so aus, als wären Ihre Daten bereits vor json_encode geschraubt worden . Sie haben es anscheinend als utf-8 "doppelt codiert".

Verwenden Sie so etwas wie utf8_encode ? Sie müssen nichts in Ihrem Code tun, wenn Sie ihn in Ihre Datenbank einfügen. Wenn Sie die Daten mit utf8_encode in die Datenbank eingefügt haben , dann erklärt das die doppelte Kodierung. Alles, was Sie brauchen, ist, dass die Daten utf-8 sind und mysql_set_charset( 'utf8' ) haben vor dem Einfügen.

Es ist interessant zu wissen, dass json nicht als Javascript ausgeführt werden kann, wenn Ihr json Unicode ohne Escapezeichen hat auch wenn Sie Klammern hinzufügen, wenn der json U+2028 oder U+2029 .