Спецификация добавляется к любому ответу возврата или смерти

Я использую JQuery для получения ответа JSON от конечной точки

die(json_encode(array('success' => 3, 'message' => 'You must use at least 1 credit or more.')));

Всякий раз, когда я проверяю ответ JSON, полученный в инструментах разработчика Chrome, я получаю красную точку, показывающую, что \ ufeff добавляется перед ответом json. Я закодировал PHP-файл с помощью UTF-8 в Notepad ++, однако он по-прежнему добавляет символ спецификации перед любым ответом. Если я что-нибудь верну или поменяю кубик, он все равно покажет символ спецификации в ответе.

Я попробовал тот же файл на моем локальном хосте, и он работает абсолютно нормально, однако на сервере он добавляет символ.

Я в недоумении относительно того, что вызывает проблему, любая помощь будет принята с благодарностью.

1

Решение

Это 13-летний выпуск

Есть обходные пути (удаление спецификации из всех файлов PHP, ob_clean при запуске скрипта), но реальное решение — это скомпилировать PHP с --enable-zend-multibyte или же --enable-mbstringили подождите, пока команда PHP исправит это.

Поскольку у вас иногда нет контроля над версией PHP и флагами компиляции в размещенных средах, я предпочитаю удалять спецификации из всех файлов PHP, чтобы избежать подобных проблем. Это будет работать на любом сервере.

Ваше решение — исправить вывод с помощью JS. Но для других целей, например генерируя изображение или другие двоичные данные через PHP или отправляя заголовки, вы не можете решить этот путь.

1

Другие решения

Похоже, это была проблема с этой конфигурацией сервера, так как он работает на других серверах. А пока я отфильтровал ответ, чтобы удалить все персонажи спецификации, используя javascript, перед анализом ответа JSON.

0

По вопросам рекламы [email protected]