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
.