В такой комбинации var_dump выводит не все русские символы. Кто-нибудь сталкивался? В чем причина? Раньше в PHP7 такой проблемы не было. Как только установил PHP8, сразу появилась. У меня операционная система - Windows 10. Web-сервер Apache 2.4 Скрипт в кодировке Windows-1251 Код (Text): header('Content-Type:text/html;charset=Windows-1251'); $s = 'мнопрсту'; echo $s; var_dump($s); Выводит Код (Text): мнопрсту D:\web\test_00.php:6:string 'мноп' (length=8) Т.е. echo выводит строку правильно. var_dump не выводит символы, код которых > F0, хотя длину строки показывает верно. Пробовал Код (Text): mb_internal_encoding('Windows-1251'); setlocale(LC_ALL, 'rus'); ini_set('default_charset', 'Windows-1251'); Не помогает. Если отключить расширение xdebug, то var_dump работает правильно
Переделал скрипт. Теперь он должен быть в кодировке UTF-8 Код (Text): $encoding = 'Windows-1251'; header('Content-Type:text/html;charset='.$encoding); $s = 'карта'; $se = iconv('UTF-8', $encoding, $s); echo $se, '<br>'; var_dump($se); echo '<br><br>'; $s = 'мнопрсту'; $se = iconv('UTF-8', $encoding, $s); echo $se, '<br>'; var_dump($se); echo '<br><br>'; $s = 'абвгдежзийклмнопрстуфхцчшщъыьэюя'; $se = iconv('UTF-8', $encoding, $s); echo $se, '<br>'; var_dump($se); echo '<br><br>'; $s = 'АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ'; $se = iconv('UTF-8', $encoding, $s); echo $se, '<br>'; var_dump($se); echo '<br><br>'; Вывод такой: --- Добавлено --- Пожалуйста! Если есть человек, готовый помочь, буду рад. Нужно запустить скрипт в другой OS (не в Windows). Желательно Linux. Обязательные условия: PHP8 с расширением xdebug Если у Вас есть рабочие Linux, PHP8 с xdebug, просто запустить скрипт и опубликовать результат здесь в теме. Требуется убедиться, виноват ли в этом Windows. Потом буду копать дальше.