sql >> Database teknologi >  >> RDS >> Mysql

Problem med JSON output accenter

Det betyder ikke rigtig noget. Når json'en er afkodet, bliver de til tegn igen.

Hvis du bruger php 5.4>=, kan du sende JSON_UNESCAPED_UNICODE til json_encode :

json_encode( $data, JSON_UNESCAPED_UNICODE )

Men igen, unicode-escapes fungerer lige så godt og gør data ascii sikre.

Rediger:

Det ser ud til, at dine data allerede var ødelagt, selv før json_encode . Du har "dobbeltkodet" det som utf-8 det ser ud til.

Bruger du noget som utf8_encode ? Du behøver ikke at gøre noget i din kode, når du indsætter i din database. Hvis du har indsat dataene i databasen ved hjælp af utf8_encode , så forklarer det dobbeltkodningen. Alt du behøver er, at dataene er utf-8 og har mysql_set_charset( 'utf8' ) før indsættelse.

Det er interessant at vide, at hvis din json har unescaped unicode, kan json ikke udføres som javascript selvom du tilføjer parenteser, hvis json'en indeholder U+2028 eller U+2029 .




  1. Forstå DROP TABLE Statement i SQL Server

  2. SQL-forespørgsel efter trådede meddelelser

  3. Laravel 4 :Hvordan får man udvalgte/specifikke kolonner i et mange til mange forhold?

  4. Udpak Oracle LONG til streng i VBA