![]() |
[решено] Сбилась кодировка командной строки
Всем привет!
Не знаю точно что случилось, но стандартные сообщения командной строки отображаются в другой кодировке. То же самое происходит, если открыть командную строку в текущей папке, а в пути присутствуют русские символы: В апплете "Языки и региональные стандарты" везде стоит русский язык. Заранее спасибо. |
В реестре какие кодировки стоят?
|
Вложений: 1
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 тоже нормально. sfc /scannow пока не пробовал. |
D_Master, эврика!
В ветке HKEY_CURRENT_USER\Console параметр CodePage все портит. Его можно просто удалить (по умолчанию будет 866). И в HKEY_USERS\S-1-5-18\Console заодно. А делает этот "замечательный" глюк ComboFix. |
Сорри, что не заглядывал в тему :)
Petya V4sechkin, благодарю, попробую! (сейчас 7ку оцениваю :)) Цитата:
|
Попробуйте переустановить шрифты windows
Дополнительно здесь 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 Заодно можно поискать по ключ. слову %systemroot%_system32_cmd.exe в ветке HKEY_USERS и также прописать CodePage=866 |
Эпидемия какая-то. На одном компьютере 3 системы - Vista, XP, 7. На Vista и XP в ком строке, после чего не знаю, слетела кодировка. На Vista помог только совет Pili. Остальное не сработало
|
Цитата:
П.С.: А восстанавливать надо параметр CodePage в реестре? На что его удаление повлияет? |
lynxxx, Пуск -> Выполнить -> cmd.exe
Код:
chcp |
Цитата:
Цитата:
при выполнении chkdsk C: /r СКРИН |
Pili,
В ветке HKEY_CURRENT_USER\Console параметра CodePage у меня CodePage=1251 Зато есть HKEY_CURRENT_USER\Console\%systemroot%_system32_cmd.exe,но у меня CodePage=1251-нет (но могу прописать если надо) А как ты прописал и как вставил расскажи пошагово мне свою работу: HTML код:
Прописал так |
Цитата:
|
Petya V4sechkin,
Спасибо за твою сностку, где уважаемый Pili, очень грамотно там все написал как надо исправить шрифты. Но руководствуясь его правилами и текстом прочтения я так немного и непонял - может ты мне поможешь????? В ветке HKEY_CURRENT_USER\Console параметра CodePage у меня CodePage=1251 Зато есть HKEY_CURRENT_USER\Console\%systemroot%_system32_cmd.exe,но у меня CodePage=1251-нет (но могу прописать если надо) А как прописать и куда вставить расскажи мне пошагово: HTML код:
Прописал так |
sztksales, повторяю для особо одаренных: удалите параметр CodePage.
|
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: |
Цитата:
|
Все восстановил, как положено и все встало на свои места!!!!
Спасибо помогло!!!!! :) |
Тоже столкнулся с неправильной кодировкой в cmd в WinXP SP3.
В моём случае данная проблема решалась принудительным заданием кодировки 866 в HKEY_CURRENT_USER\Console (перезагрузка не требуется). 1. Создание подраздела %systemroot%_system32_cmd.exe и параметра СodePage: Код:
Windows Registry Editor Version 5.00 2. Создание параметра CodePage: Код:
Windows Registry Editor Version 5.00 Внесение изменений в 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 - безуспешна что еще можно попоробовать сделать? |
Цитата:
|
сработало, спа-си-бо!
|
как изменить дефолтный chcp консоли?
как изменить дефолтный chcp консоли?
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage - параметр OEMCP стоит 866 Ветки HKCU\Console\%%SystemRoot%%_system32_cmd.exe не существует |
Owyn, удалите параметр CodePage в ветке HKEY_CURRENT_USER\Console
|
Petya V4sechkin, параметра CodePage в ветке HKEY_CURRENT_USER\Console не существует.
|
Owyn, где-то он существует.
|
Petya V4sechkin, в
HKEY_USERS\.DEFAULT\Console CodePage стоит 1251 но его смена ничего не дает HKEY_USERS\S-1-5-18\Console еще есть CodePage но он стоит в 866 Больше нигде в реестре нету параметра CodePage Цитата:
|
Ни один из вариантов не отработал.
Помогла смена типа шрифта с "точечные" на любой другой из возможных двух. Искать здесь: Запустить CMD -> ПКМ по рамке окна -> Свойства -> Шрифт. OS Windows 7. На WinXP думаю так-же. |
значит хитро убиты *.fon. однако.
|
Цитата:
|
Цитата:
Andale Mono Bitstream Vera Mono Consolas Courier New DejaVu Sans Mono Хочется расширить наборчик в коллекции :) |
Я не сильно большой любитель коллекционировать, свои потребности я покрыл, в основном, за счёт «Consolas» и «PT Mono». В ряде случаев из-за особенностей связки «видеокарта-драйвер-физическое разрешение монитора-установленное логическое разрешение экрана» использовал также шрифты «Andale Mono» и «DejaVu Sans Mono». Так что, я Вам в этом, увы, не помощник.
В принципе, можете порыться в этой теме: Шрифты для Far; там куча ссылок и описаний разнообразных шрифтов, причём не только контурных, но и вполне качественных растровых шрифтов. |
Цитата:
тут всё просто моноширинных шрифтов с русскими глифами и прописанной кодировкой Cp866 немного :
Код:
Windows Registry Editor Version 5.00 |
Цитата:
CP866 меня слабо интересует :) ибо лечится chcp если сильно надо. Меня скорее интересует их Юникодно-наполненность. |
Всем привет! У меня проблема та же.
В реестре в ветке HKLM\SYSTEM\CurrentControlSet\Control\Nls\CodePage параметр OEMCP=437 (а должно быть 866), Что это может значить |
У меня XP rus в консоли русские буквы нормально при вводе и вверху окна:
Цитата:
Цитата:
Цитата:
HKEY_CURRENT_USER\Console параметр CodePage параметр отсутствует. команда chcp выдает 866 Получается тут как в браузере если есть текст в разных кодировках на одной странице, не все браузеры нормально переваривают. Как это поправить? |
Artell, некоторые утилиты сделаны так, что делают вывод исключительно в одной, жёстко заданной разработчиком, кодировке. И далеко не всегда это OEM/866.
Цитата:
|
Цитата:
|
Цитата:
Например ncrack выдает в моем примере выше по команде ncrack -v --user root localhost:22 "Китайское время (зима)" это же явно текст из виндовс. Когда он успевает кодировку попутать? |
Artell, не знаю, как раньше у Вас, но у меня нынче:
Код:
C:\Песочница\023>ncrack -v --user root localhost:22 Код:
C:\Песочница\023>chcp 1251 |
Цитата:
Код:
C:\Users\vasiliy>nslookup Код:
C:\Users\vasiliy>nslookup oszone.net |
Во-во, и я про то же. Последний случай, конечно, наиболее фееричный. Как я понимаю, одну строку приложение выводит из своих ресурсов, а другая, возможно, из ресурсов какой-либо библиотеки.
|
Цитата:
Программа декодирует unicode в дефолтную кодировку windows. то есть в cp1251. Ну а консоль работает тоже в дефолтой кодировке. Но уже cp866. Если дефолтных кодировок целых две штуки и они разные, то кракозябры неизбежны. |
а не подскажите, какой ключ отвечает за цвет шрифта, тип шрифта и размер, хочу сделать теперь твик.
|
Цитата:
Код:
HKEY_CURRENT_USER\Console\ScreenColors
Цитата:
Код:
HKEY_CURRENT_USER\Console\FontFamily Цитата:
Код:
HKEY_CURRENT_USER\Console\FontSize |
Iska,
я просто не пойму, я настраивал-настраивал, так вот все запускаемые батники идут с зеленым цветов, когда запускаешь cmd через win+r то с другим, и когда с ярлыка в стандартных с третьим. вот я и запутался, как настроить, чтоб везде было одинаково и без кракозябр. ps я темы схожей не нашел, поэтому спросил здесь. |
Цитата:
Цитата:
|
Iska,
спасибо, поигрался, все понял. |
Win 10 x64 Home Edition English, была установлена русская кодирорвка, к-рая показывалась на ура в FAR. Позавчера поставил последнее обновление на винду и слетела кодировка во всех консольных приложениях. В HKCU пробовал прописывать CodePage - без толку. Что делать?
|
Цитата:
|
На какой менять-то?
Сменил на Lucida Console - показалось нормально. Но вот прежний Raster 10x18 - ни в какую. Что с этим делать? |
senglory, а для самой командной строки — как оно?
|
Точно так же. Только в Lucida отображается, а в Raster - кракозябры.
|
Цитата:
Andale mono
![]() Anonymous pro
![]() Consolas
![]() Lucida Console
![]() Цитата:
|
Amigos, теперь ещё расскажите товарищу, как добавить туда дополнительные шрифты ;). Или в теме таковое есть?
Consolas токмо чуток покрупнее трэба, мелкие размеры шрифта не его стихия. |
|
Цитата:
В Win10 не надо никаких твиков реестра, достаточно просто установить моноширинный шрифт с соответствующим уникодным диапазоном символов в систему, и он сам появится в списке ![]() |
Цитата:
Цитата:
|
То есть, на сколько я понял, точечный шрифт, используемый в консоли по умолчанию, в принципе не может отображать кириллицу в других кодировках кроме ср866. Это тот же шрифт, который в notpad называется Terminal и у него там есть только набор символов OEM/DOS. С этим шрифтом в блокноте можно нормально работать с 866, но другие кириллические кодировки он не понимает. И поэтому при вводе CHCP 1251 в консоли вполне нормально получить непонятный набор букв из разных языковых областей шрифта. То есть шрифт отображает символы кириллицы, но их код не соответствует ср1251 и раскладка клавиатуры становится не стандартной при вводе русских символов - они находятся не на тех клавишах. То же происходит и с сообщениями, выводимыми интерпретатором кириллицей. Некоторые номера символов попадают в область кириллицы, но соответствуют совсем другим символам.
Короче, если у вас в консоли при стоящем по умолчанию точечном шрифте команды CHCP 1251 и CHCP 65001 выводят нечитаемые сообщения, это нормально. Не нужно искать причину этого в реестре или системных настройках или в установленных шрифтах. И если вам необходимо, чтобы кирилица отображалась в консоли в кодировках cp1251 и cp65001 придётся отказаться от шрифта стоящего по умолчанию и выбрать lucida console. Я правильно понял? |
Цитата:
Точечный шрифт это анохронизм времён Windows 2.0 - Windows 3.1. И у него … нет кодировки. Совсем нет. Грубо говоря это набор из 255 маленьких ч/б картинок с нарисованными на них буквами и символами. В русской windows xp порядок букв на этих картинках совпадает с порядком символов cp866. Поменять порядок картинок символов в шрифте, расставить их также, как в cp1251 - будет "растровый шрифт, поддерживающий кириллицу в cp1251" А тот шрифт, что "из коробки" , он да "только cp866" |
А разве у векторных шрифтов - не картинки, только в векторном формате?
Использую давно точечный шрифт в Cmd, проблем с кодировкой не возникали. Векторные шрифты там выглядят очень тонкими. |
ivan_krasnoyarov@vk, видимо, Вы хотели сказать — контурные шрифты. Векторные, конечно, тоже есть, но навряд ли Вы про них.
И — не выглядят. |
Цитата:
К примеру CP866 отличается от CP1251 не только тем, что "русские буквы в других местах", но и поддержкой спецсимволов псевдографики, и большинство "русских" ttf шрифтов поддерживают cp1251 , но не поддерживают cp866 из-за того что для её поддержки нужно рисовать псевдографику. |
Время: 07:13. |
Время: 07:13.
© OSzone.net 2001-