PHP: Как вывести русский текст в консоли Windows 7?

Здравствуйте!

Есть 3 текстовых файла со словом "Привет!":

01 ANSI.txt - в кодировке 1251
02 OEM.txt - в кодировке 866
03 UTF-8.txt - в кодировке UTF-8

и есть следующий скрипт:

readfile('01 ANSI.txt');
readfile('02 OEM.txt');
readfile('03 UTF-8.txt');


Если запустить скрипт в браузере, то получим следующее:

6357e14a5aa11921934564.jpeg

Если запустить скрипт из командной строки Windows 10, то получим это:

6357e17ca7e0d179410398.jpeg

А если запустить скрипт из командной строки Windows 7, то получим вот это:

6357e1b4a15a2870575825.jpeg

Вопрос: как нужно перекодировать строку с русским текстом, чтобы она нормально отобразилась в консоли Windows 7?

Я пересмотрел кучу подобных вопросов в интернете, ни один совет не помог.
Если что, у меня:
- Windows 7 Pro
- Apache 2.4.43
- PHP 7.4.8
  • Вопрос задан
  • 147 просмотров
Решения вопроса 1
@GSV4 Автор вопроса
Ура! Таки получилось!

exec('chcp 1251');

$s = file_get_contents('01 ANSI.txt');
$s = iconv('cp1251', 'cp866', $s);
echo $s;

$s = file_get_contents('02 OEM.txt');
echo $s;

$s = file_get_contents('03 UTF-8.txt');
$s = iconv('utf-8', 'cp866', $s);
echo $s;


И на экране выходит:

6357fd23b6a2e660025762.jpeg

Т.е. консоль должна быть в кодировке 1251, а выводимый текст - в кодировке 866. Всё логично! ))
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Кодировать надо в codepage 866
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы