проблема с php json_decode utf8 - PullRequest
       2

проблема с php json_decode utf8

1 голос
/ 21 сентября 2011

В моем MySQL есть запись в кодировке json

[{"0":{"town":"İstanbul","location":1},"1":{"town":"Eskişehir","location":1},"orderDay":"2011-09-20"}]

Когда я получаю эти данные из Mysql, я получаю их как есть.Точно так же.Но когда я пытаюсь его расшифровать, символы utf8 меняются.Как "İ" или "ş" не декодирует, как они есть.Они выглядят примерно так: «u015f»

MySql - это utf8.И мои строки тоже utf8.У меня есть

header('Content-Type: text/html; charset=utf-8'); 

вверху моего php-файла.У меня также есть

mysql_query( "SET NAMES 'utf8' " );

после того, как я подключился к базе данных.

Так, что я должен сделать, чтобы декодировать мои данные с помощью символов utf8?

Ответы [ 2 ]

0 голосов
/ 17 марта 2014

Если вы используете браузер, чтобы посмотреть на это, попробуйте установить кодировку UTF8 или автоопределение. В Chrome это делается в Сервис -> Кодировка

0 голосов
/ 25 марта 2012

кодирование декодирования акцентированного символа, кажется, работает правильно здесь

http://codepad.org/7Uh9R3fY

с этим кодом

<?
   $str = json_encode(array(name => 'ş'));
   echo $str;
   print_r(json_decode($str));
?>

и если вы видите "u015f" в качестве значения, то вы, вероятно, пропускаете косую черту перед этой escape-последовательностью, поэтому вы уверены, что ваш код не удаляет эту косую черту?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...