sql >> Databáze >  >> RDS >> Mysql

Problém s akcenty na výstupu JSON

To je vlastně jedno. Když je json dekódován, stanou se znovu znaky.

Pokud používáte php 5.4>=, můžete předat JSON_UNESCAPED_UNICODE na json_encode :

json_encode( $data, JSON_UNESCAPED_UNICODE )

Ale znovu, unicode escape fungují stejně dobře a zajišťují bezpečnost datových ascii.

Upravit:

Zdá se, že vaše data již byla zpackaná, dokonce ještě před json_encode . Máte to "dvojitě zakódováno" jako utf-8, jak se zdá.

Používáte něco jako utf8_encode ? Při vkládání do databáze nemusíte v kódu nic dělat. Pokud jste vložili data do databáze pomocí utf8_encode , pak to vysvětluje dvojité kódování. Vše, co potřebujete, je, aby data byla utf-8 a měla mysql_set_charset( 'utf8' ) před vložením.

Je zajímavé vědět, že pokud má váš soubor json neuvedený kód unicode, soubor json nelze spustit jako javascript i když přidáte závorky, pokud json obsahuje U+2028 nebo U+2029 .




  1. Jak používat smíšené int a numerické argumenty ve funkci Postgres 9.1+

  2. Jak opravit chybu:Neočekávané vypnutí MySQL na Xampp kvůli pluginu 'Aria'

  3. Jak funguje funkce Sign() v PostgreSQL

  4. Problém Varchar na Mysql 2147483647