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(), ', &nbsp;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>';

Результат один и тот же. введите сюда описание изображения

Половина алфавита нижнего регистра не выводится.

→ Ссылка