Я использую 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 ++, однако он по-прежнему добавляет символ спецификации перед любым ответом. Если я что-нибудь верну или поменяю кубик, он все равно покажет символ спецификации в ответе.
Я попробовал тот же файл на моем локальном хосте, и он работает абсолютно нормально, однако на сервере он добавляет символ.
Я в недоумении относительно того, что вызывает проблему, любая помощь будет принята с благодарностью.
Это 13-летний выпуск
Есть обходные пути (удаление спецификации из всех файлов PHP, ob_clean
при запуске скрипта), но реальное решение — это скомпилировать PHP с --enable-zend-multibyte
или же --enable-mbstring
или подождите, пока команда PHP исправит это.
Поскольку у вас иногда нет контроля над версией PHP и флагами компиляции в размещенных средах, я предпочитаю удалять спецификации из всех файлов PHP, чтобы избежать подобных проблем. Это будет работать на любом сервере.
Ваше решение — исправить вывод с помощью JS. Но для других целей, например генерируя изображение или другие двоичные данные через PHP или отправляя заголовки, вы не можете решить этот путь.
Похоже, это была проблема с этой конфигурацией сервера, так как он работает на других серверах. А пока я отфильтровал ответ, чтобы удалить все персонажи спецификации, используя javascript, перед анализом ответа JSON.