Получение странной кодировки символов в выводе json

Получение таких вещей в моих ответах JSON:

Наша Lorem Ipsum Dolor Sit Amet, Concetetur Adipiscing Elit, Sed do EiusMod Tempor Inididunt ut Labore et Dolore Magna Aliqua. Ut enim ad minim veniam, quis nostrud упражнение ullamco labouris nisi ut aliquip ex ea кассовый следствие. Duis aute irure dolor в репереендерите в завитке Velit esse cillum dolore eu fugiat nulla pariatur.\ U003C/p\u003E\n

Я предполагаю, что CakePHP 3.3 что-то здесь делает. Использование стандартных расширений маршрутов json и xml. С набором и сериализацией в моих контроллерах. Ничего необычного, что я могу придумать. Любая идея, как изменить это на что-то, что может быть легко декодировано клиентом или просто отключить кодирование все вместе?

1 ответ

Решение

В этом нет ничего странного, это просто представление тегов Юникодом открывающих и закрывающих угловых скобок тегов HTML в вашем контенте. Это преобразование применяется при использовании JSON_HEX_TAG опция, которую CakePHP делает по умолчанию.

На самом деле, CakePHP в настоящее время использует

JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_AMP | JSON_HEX_QUOT

по умолчанию. Если вы хотите изменить это, используйте _jsonOptions опция просмотра переменной, чтобы определить свою собственную битовую маску, или установить ее на false отключить настройки по умолчанию, т.е. в действии вашего контроллера сделать что-то вроде

$this->set('_jsonOptions', false);

Смотрите также

Другие вопросы по тегам