Това всъщност няма значение. Когато json се декодира, те отново стават знаци.
Ако използвате php 5.4>=, можете да подадете JSON_UNESCAPED_UNICODE
към json_encode
:
json_encode( $data, JSON_UNESCAPED_UNICODE )
Но отново, екранирането на unicode работи също толкова добре и прави данните ascii безопасни.
Редактиране:
Изглежда, че вашите данни вече са били прецакани, дори преди json_encode
. Изглежда сте го „кодирали двойно“ като utf-8.
Използвате ли нещо като utf8_encode
? Не е необходимо да правите нищо във вашия код, когато вмъквате във вашата база данни. Ако сте вмъкнали данните в базата данни с помощта на utf8_encode
, тогава това обяснява двойното кодиране. Всичко, от което се нуждаете, е данните да са utf-8 и да имат mysql_set_charset( 'utf8' )
преди да поставите.
Интересно е да знаете, че ако вашият json има неекраниран уникод, json не може да бъде изпълнен като javascript
дори ако добавите скоби, ако json съдържа U+2028
или U+2029
.