php 8.4 var_dump выводит не все русские символы
var_dump выводит не все русские символы. В php 7.1 такой проблемы не было. После установки php 8.4 появилась В чем причина?
header('Content-Type:text/html;charset=Windows-1251');
$s = 'мнопрсту';
echo 'php: ', phpversion(), ', xdebug: ', phpversion('xdebug'), '<br><br>';
echo $s;
var_dump($s);
В php7 строка выводится без проблем:
php: 7.1.25, xdebug: 2.7.0betal мнопрсту D:\web\test_00.php:6:string 'мнопрсту" (length-8)
В php8 пропадают символы, код которых больше кода буквы 'п':
php: 8.4.1, xdebug: 3.4.0 мнопрсту D:\web\test_00.php:6:string 'мноп' (length=8)
Ответы (1 шт):
Автор решения: Alexander
→ Ссылка
Похоже на баг в комбинации php8 + xdebug. Пробовал запустить следующий скрипт в PHP 8.1, 8.2, 8.3, 8.4 в Windows и в Linux.
$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>';
Половина алфавита нижнего регистра не выводится.