ANTICHAT Forum
HOME FORUMS MEMBERS RECENT POSTS LOG IN  
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

После апдейта PHP 8.4 json_encode резко забаррикадировался
  #1  
Старый 03.11.2026, 12:10
Scroobi
Новичок
Регистрация: 03.03.2013
Сообщений: 41
С нами: 6944726

Репутация: 0
По умолчанию После апдейта PHP 8.4 json_encode резко забаррикадировался

Обновился недавно на PHP 8.4 и json-ответы стали либо с кривой кодировкой, либо вообще пустые, хотя раньше всё нормально было. Использую обычный json_encode для массива с UTF-8 строками без BOM, ошибок в логах не вижу. Проверил настройки — mb_internal_encoding на UTF-8, output_buffering выключен, заголовки нормально идут, content-type json. Но проблема осталась.

Файлы на BOM проверил, пробовал флаги типа JSON_UNESCAPED_UNICODE — изменений нет. Заметил, что если явно ставить header("Content-Type: application/json; charset=utf-8"), иногда помогает, но не всегда.

Похоже, что в этой версии PHP что-то с кодировками или с буфером вывода изменили. Был похожий баг при переходе с 7.4 на 8.0 — там тоже подводные камни. Думаю, может сюда залезает дефолтная кодировка или iconv, если где-то неявно что-то перекодируется.

Если кто-то недавно на 8.4 перешёл — как справлялись? Может с mbstring или output buffering там баги в связке с json? Копать сложно, ручные тесты муторные, а клиенту приходит криво.
 
Ответить с цитированием
Ответ



Предыдущая тема Следующая тема

Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.