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) и восстановит в случае их подмены или повреждения.
Сэр Генри Баскервиль
Ученик
(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" - использовать юникод для всемировой языковой поддержки.
что можно сделать чтобы выводилось правильно?