@salacoste

Как передать кириллицу из PHP в JSON?

Всем привет,
Очередная проблема с кириллицей в json_encode на PHP 5.3.
Код примерно такой:
$sth=$bdd->prepare("SELECT * FROM `events` ORDER by id");
$sth->execute();
$result=$sth->fetch(PDO::FETCH_ASSOC);
print_r($result);
echo '';
echo json_encode($result);


Файл, БД в UTF-8.

Результат
Array ( [id] => 3 [start] => 2014-11-20 22:34:57 [end] => 2014-11-29 22:34:59 [type] => тестовый текст )
{"id":"3","start":"2014-11-20 22:34:57","end":"2014-11-29 22:34:59","type":"\u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u0442\u0435\u043a\u0441\u0442"}

Первая строчка - это фетч PDO, все ок с кодировкой. (просмотр браузера настроен в UTF-8)
Вторая строчка - это json_encode, который не воспринимает кириллицу.
Почему? Если в описании к функции написано, что encode воспринимает UTF-8?
  • Вопрос задан
  • 3090 просмотров
Решения вопроса 1
@red_led
Всё хорошо, это и есть кириллица в utf-8, только в виде ескейп-последовательности. Если вы получаете эти данные в браузере - там будет нормальный текст.
Вот тут описаны параметры для json_encode и в частности JSON_UNESCAPED_UNICODE, который оставит текст как есть.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Почему "не воспринимает"? Просто кодирует для безопасной передачи. \u0442... - как раз представление строки в Unicode.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы