Задать вопрос

Почему кириллица вышибает asJson и asXml?

Делаю
$data = ["id" => 10, "text" => 'Hi'];
return $this->asXml($data);

работает.

Меняю "Hi" на "Привет", получаю
This page contains the following errors:
error on line 2 at column 37: Encoding error
Below is a rendering of the page up to the first error.


Страница содержит
<?xml version="1.0" encoding="UTF-8"?>
<response><id>10</id><text>


Если "Hi" возвращает так
<?xml version="1.0" encoding="UTF-8"?>
<response><id>10</id><text>Hi</text></response>


Если меняю на asJson, то "Hi" выдает
{"id":10,"text":"Hi"}

а "Привет" выдает
{"name":"Exception","message":"Syntax
error.","code":4,"type":"yii\\base\\InvalidParamException","file":"путь...\\vendor\\yiisoft\\yii2\\helpers\\BaseJson.php","line":132,"stack-trace":["#0 
путь...\\vendor\\yiisoft\\yii2\\helpers\\BaseJson.php(62): yii\\helpers\\BaseJson::handleJsonError(4)","#1 [internal function]: yii\\helpers\\Json::yii\\helpers\\{closure}(2, 'json_encode(): ...', 'путь...', 64, Array)","#2 
путь...\\vendor\\yiisoft\\yii2\\helpers\\BaseJson.php(64): json_encode(Array, 320)","#3 
путь...\\vendor\\yiisoft\\yii2\\web\\JsonResponseFormatter.php(89): yii\\helpers\\BaseJson::encode(Array, 320 путь...\\vendor\\yiisoft\\yii2\\web\\JsonResponseFormatter.php(73): yii\\web\\JsonResponseFormatter->formatJson(Object(yii\\web\\Response)
путь...\\vendor\\yiisoft\\yii2\\web\\Response.php(1041): yii\\web\\JsonResponseFormatter->format(Object(yii\\web\\Response)
путь...\\vendor\\yiisoft\\yii2\\web\\Response.php(337): yii\\web\\Response->prepare(
путь...\\vendor\\yiisoft\\yii2\\base\\Application.php(392): yii\\web\\Response->send(
путь...\\app\\web\\index.php(17): yii\\base\\Application->run()","#9 {main}"]}
  • Вопрос задан
  • 293 просмотра
Подписаться 3 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
Наверное все дело в $this->asXml($data), а что там знаете только вы
Ответ написан
latteo
@latteo
This page contains the following errors:

Этот текст похож на ошибку отображения или валидации xml в браузере.
Жмите Сtrl+U - и смотрите на исходный текст страницы
Ответ написан
Ваш ответ на вопрос

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

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