Показать полную графическую версию : [решено] Сбилась кодировка командной строки
D_Master
03-03-2009, 07:58
Всем привет!
Не знаю точно что случилось, но стандартные сообщения командной строки отображаются в другой кодировке. То же самое происходит, если открыть командную строку в текущей папке, а в пути присутствуют русские символы:
http://s42.radikal.ru/i097/0903/e8/27e673d6dcc6t.jpg (http://radikal.ru/F/s42.radikal.ru/i097/0903/e8/27e673d6dcc6.jpg.html)
http://s56.radikal.ru/i154/0903/8f/fd1a964fd050t.jpg (http://radikal.ru/F/s56.radikal.ru/i154/0903/8f/fd1a964fd050.jpg.html)
В апплете "Языки и региональные стандарты" везде стоит русский язык.
Заранее спасибо.
В реестре какие кодировки стоят?
Petya V4sechkin
04-03-2009, 10:12
D_Master, у себя то же самое недавно заметил - после чего произошло, не знаю. Вчера и сегодня роюсь в гугле - жутко интересно, почему так )
При запуске из Cmd.exe команда Chcp выдает 1251 (а должна 866 по умолчанию). При этом FAR manager выдает нормальную 866. А Command.com (досовский) - вообще прикол (скриншот прикрепил).
В ветке HKLM\SYSTEM\CurrentControlSet\Control\Nls\CodePage параметр OEMCP=866 (как и должно быть).
В этих ветках тоже все ок:
HKCU\SOFTWARE\Microsoft\Command Processor
HKLM\SOFTWARE\Microsoft\Command Processor
В досовских Autoexec.nt и Config.nt тоже нормально. Тем не менее, на скриншоте видно, что Chcp каким-то образом выполняется при запуске. Буду дальше рыть в этом направлении. Нет, Chcp ни при чем (удаление из system32 не помогло).
sfc /scannow пока не пробовал.
Petya V4sechkin
04-03-2009, 11:02
D_Master, эврика!
В ветке HKEY_CURRENT_USER\Console параметр CodePage все портит. Его можно просто удалить (по умолчанию будет 866). И в HKEY_USERS\S-1-5-18\Console заодно.
А делает этот "замечательный" глюк ComboFix.
D_Master
04-03-2009, 11:27
Сорри, что не заглядывал в тему :)
Petya V4sechkin, благодарю, попробую! (сейчас 7ку оцениваю :))
А делает этот "замечательный" глюк ComboFix, там есть такое: »
Точно! Я же на днях с ComboFix-ом работал!
Попробуйте переустановить шрифты windows (http://support.microsoft.com/kb/314960/ru)
Дополнительно здесь (http://forum.oszone.net/thread-123169-3.html)
update
Проверил на тестовом компьютере (спец. собрал), версия комбофикс правда устарела, ещё прошлогодняя. Действительно cmd после комбофикс показывет иероглифы :)
В ветке HKEY_CURRENT_USER\Console параметра CodePage вообще нет, добавление туда и в HKEY_USERS\S-1-5-18 CodePage=866 не помогло. Зато есть HKEY_CURRENT_USER\Console\%systemroot%_system32_cmd.exe, где CodePage=1251
Прописал так
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Console\%systemroot%_system32_cmd.exe]
"CodePage"=dword:00000362
И все стало нормально :)
Заодно можно поискать по ключ. слову %systemroot%_system32_cmd.exe в ветке HKEY_USERS и также прописать CodePage=866
Эпидемия какая-то. На одном компьютере 3 системы - Vista, XP, 7. На Vista и XP в ком строке, после чего не знаю, слетела кодировка. На Vista помог только совет Pili. Остальное не сработало
В ветке HKEY_CURRENT_USER\Console параметр CodePage все портит. Его можно просто удалить (по умолчанию будет 866). И в HKEY_USERS\S-1-5-18\Console заодно. удаление не помогло, переустановку шрифтов не получится сделать, диск не найден, папка Fonts весит 114мб
П.С.: А восстанавливать надо параметр CodePage в реестре? На что его удаление повлияет?
Petya V4sechkin
12-05-2009, 13:38
lynxxx, Пуск -> Выполнить -> cmd.exe
chcp
что выдает?
В ветке HKEY_CURRENT_USER\Console параметра CodePage вообще нет, добавление туда и в HKEY_USERS\S-1-5-18 CodePage=866 не помогло. Зато есть HKEY_CURRENT_USER\Console\%systemroot%_system32_cmd.exe, где CodePage=1251
Прописал так
Код:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Console\%systemroot%_system32_cmd.exe]
"CodePage"=dword:00000362 код скопировать в блокнот и расширение .reg поставить и выполнить?
что выдает? »
текущая кодовая страница: 866
при выполнении chkdsk C: /r СКРИН (http://i.piccy.info/i3/1f/7e/d1e97d3ba28c9e358eb98c30086c.jpeg)
sztksales
23-12-2009, 15:26
Pili,
В ветке HKEY_CURRENT_USER\Console параметра CodePage у меня CodePage=1251
Зато есть HKEY_CURRENT_USER\Console\%systemroot%_system32_cmd.exe,но у меня CodePage=1251-нет (но могу прописать если надо)
А как ты прописал и как вставил расскажи пошагово мне свою работу:
Прописал так
Код:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Console\%systemroot%_system32_cmd.exe]
"CodePage"=dword:00000362
Petya V4sechkin
23-12-2009, 15:28
В ветке HKEY_CURRENT_USER\Console параметра CodePage у меня CodePage=1251
Удалите параметр.
sztksales
23-12-2009, 15:30
Petya V4sechkin,
Спасибо за твою сностку, где уважаемый Pili, очень грамотно там все написал как надо исправить шрифты.
Но руководствуясь его правилами и текстом прочтения я так немного и непонял - может ты мне поможешь?????
В ветке HKEY_CURRENT_USER\Console параметра CodePage у меня CodePage=1251
Зато есть HKEY_CURRENT_USER\Console\%systemroot%_system32_cmd.exe,но у меня CodePage=1251-нет (но могу прописать если надо)
А как прописать и куда вставить расскажи мне пошагово:
Прописал так
Код:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Console\%systemroot%_system32_cmd.exe]
"CodePage"=dword:00000362
Petya V4sechkin
23-12-2009, 15:34
sztksales, повторяю для особо одаренных: удалите параметр CodePage.
sztksales
23-12-2009, 15:36
Petya V4sechkin,
Ни чего не стал удалять, а наоборот:
В ветке HKEY_CURRENT_USER\Console параметр CodePage поменял на 866 и в HKEY_USERS\S-1-5-18\Console CodePage 866 заодно.
Прописал в ветке [HKEY_CURRENT_USER\Console\%systemroot%_system32_cmd.exe]
в REG_DWORD - "CodePage" на 866
Дал заново команду CMD, команда chcp - показывает 866 !!!!! Все встало на свои места - иероглифы исчезли!!!!!!! :laiel:
Ура!!!!! Спасибо огромное..... :4u:
Вам за такую умную работу - Вам надо давать печеньки с молоком.... :boast:
Petya V4sechkin
23-12-2009, 15:55
Удалил и что???
Не помогло?
sztksales
23-12-2009, 15:56
Все восстановил, как положено и все встало на свои места!!!!
Спасибо помогло!!!!! :)
Nimbussr
10-05-2010, 07:51
Тоже столкнулся с неправильной кодировкой в cmd в WinXP SP3.
В моём случае данная проблема решалась принудительным заданием кодировки 866 в HKEY_CURRENT_USER\Console (перезагрузка не требуется).
1. Создание подраздела %systemroot%_system32_cmd.exe и параметра СodePage:Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Console\%systemroot%_system32_cmd.exe]
"CodePage"=dword:00000362
или
2. Создание параметра CodePage:Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Console]
"CodePage"=dword:00000362
Достаточно применить только один вариант.
Внесение изменений в HKEY_USERS\S-1-5-18\Console не давало никаких изменений.
Тоже пользовался Combofix, аналогичные проблемы. Все поправил, спасибо большое, только вроде бы он добавляет еще один глюк. Перестали действовать специальные символы - ^C, ^Z - не получается прервать команду пинг.
А если сделаете ping ya.ru -t - то вообще, только закрывать cmd. Никто не знает, как это лечить?
не нашел более подходящей темы для моей проблемы
использую команду
dir > t.txt
в ВАТ-файле, чтобы получить список папок и файлов в той же папке, откуда и запускаю этот ВАТ-файл
в XPsp3 кириллица в проводнике видна,
а в результирующем файле t.txt , полученном выше, вместо нее всегда кракозябры
методы, описанные здесь выше, мне не помогли
при этом, при открытии любого примитивного ТХТ-файла, не имеющего указания о его кодировке, он открывается в кодировке 1251, как мне и удобно
попытка открыть t.txt принудительно в кодировке 866, используя notepad\wordpad - безуспешна
что еще можно попоробовать сделать?
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.