Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Что нужно сделать чтобы командная строка выводила русский текст?

Андрей Верховников Профи (950), закрыт 12 лет назад
при выполнении программы текст который должен выводиться по русски выводится абракадаброй:

что можно сделать чтобы выводилось правильно?
Дополнен 12 лет назад
ОС Win 7
Лучший ответ
Kydes Kydesnik Просветленный (23519) 12 лет назад
Сбои со шрифтами

Поддержка кириллицы всегда была головной болью пользователей, и хотя в Windows XP этот вопрос решен гораздо лучше, чем в альтернативных ОС, тем не менее, может так оказаться, что при установке в нелокализованной Windows русских программ, все меню с кириллицей будут искажены, либо кириллица будет недоступна в DOS-приложениях. Чтобы получить полную поддержку русского языка необходимо в диалоге «Control Panel» — «Regional and Language Options» — «Advanced» («Панель управления» — «Язык и региональные стандарты» — «Дополнительно» ) поставить флажок в длинном списке кодировок «Code page conversion tables» («Кодовые страницы таблиц преобразования» ) на строке «20880 (IBM EBCDIC — Cyrillic (Russian))» и установить параметр «Language for non-Unicode programs» («Язык программ, не поддерживающих Юникод» ) в положение «Rusian» («Русский») . На вкладке «Regional Options» («Региональные параметры» ) также нужно установить поддержку русского языка — это параметры «Standarts and formats», «Location», («Языковые стандарты и форматы» , «Расположение») , а в разделе «Languages» — «Text services and input languages» («Языки» — «Языки и службы текстового ввода» ) нужно добавить русскую раскладку клавиатуры.

Если не помогло, то в редакторе реестра откройте ветвь HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsNTCurrentVersionFontSubstitutes и исправьте параметры шрифта, «отвечающего» за окна с искаженными символами:

"MS Shell Dlg"="Tahoma"
"MS Shell Dlg 2"="Tahoma"
на

"MS Shell Dlg"="Tahoma,204"
"MS Shell Dlg 2"="Tahoma,204"
либо на

"MS Shell Dlg"="Lucida Sans Unicode"
"MS Shell Dlg 2"="Lucida Sans Unicode"

Для других шрифтов тоже можно выбрать кириллическое подмножество, по аналогии дописав к ним цифры «204». Также в ветви HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsNTCurrentVersionFontMapper установите:

"ARIAL"=dword:000000cc
"DEFAULT"=dword:000000cc

И, наконец, в ветви:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlNlsCodePage
"1251"="C_1251.NLS"
"1252"="C_1251.NLS"
"866"="C_866.NLS"
"ACP"="1251"
"OEMCP"="866"
"MACCP"="10007"
"OEMHAL"="vga866.fon"
@="C_1251.NLS"

После изменений следует перезагрузить Windows. Установка параметра "1252"="C_1251.NLS" реально помогает во многих сложных ситуациях, но она, строго говоря, не совсем корректна и может в свою очередь привести к искажениям некоторых шрифтов, в этом случае от нее придется отказаться.

Если же с DOS-приложениями после этого по-прежнему остались проблемы, то вставьте в файл WINNTSYSTEM32AUTOEXEC.NT вызов какого-нибудь DOS-русификатора или команду:

"KB16 RU,866,C:WINNTSYSTEM32KEYBOARD.SYS"

а в разделе реестра

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlKeyboardLayoutDosKeybCodes

установите значение параметра «00000409» равным «ru».

Если же какие-то системные шрифты вообще стали отображаться некорректно (а к шрифтам относятся даже символы «Минимизировать» , «Закрыть» «Восстановить» , отображаемые на кнопках правого верхнего угла окон при использовании классического интерфейса) , то попробуйте в меню «Выполнить» («Run») кнопки «Пуск» ввести команду "SFC.EXE /SCANNOW" — Windows проверит защищенные системные файлы (exe, sys, dll, ocx, ttf, fon) и восстановит в случае их подмены или повреждения.
Остальные ответы
Bartosch Мастер (1715) 12 лет назад
chcp 1251 - для Windows Кирилицы
chcp 866 - DOS Кирилица
Сэр Генри Баскервиль Ученик (120) 4 года назад
Bartosh, лучше всего использовать единую кодировку- юникод.
это chcp 65001. Тебе и кирилица и латиница и вообще все языки мира будет выводить без проблем. Поддерживается на windows 7,8,8.1,Server 2008 r2,Server 2012, 2012 r2.
На windows 10 и server 2016\2019 тоже будет работать, но там легче включить в региональных параметрах бета-опцию "Use unicode for worldwide language support" - использовать юникод для всемировой языковой поддержки.
Похожие вопросы