Показать полную графическую версию : [решено] Сбилась кодировка командной строки
Такова беда большинства портированных утилит »да и встроенные в windows этим грешат:
C:\Users\vasiliy>nslookup
╤хЁтхЁ яю єьюыўрэш■: server-s.local
Address: 192.168.7.227
а при желании легко смешивает в своём ответе две кодировки одновременно!
C:\Users\vasiliy>nslookup oszone.net
╤хЁтхЁ: server-s.local
Address: 192.168.7.227
Не заслуживающий доверия ответ:
╚ь*: oszone.net
Address: 89.108.118.149
Во-во, и я про то же. Последний случай, конечно, наиболее фееричный. Как я понимаю, одну строку приложение выводит из своих ресурсов, а другая, возможно, из ресурсов какой-либо библиотеки.
"Китайское время (зима)" это же явно текст из виндовс. »Из реестра. Там строчка в unicode.
Программа декодирует unicode в дефолтную кодировку windows. то есть в cp1251.
Ну а консоль работает тоже в дефолтой кодировке. Но уже cp866.
Если дефолтных кодировок целых две штуки и они разные, то кракозябры неизбежны.
а не подскажите, какой ключ отвечает за цвет шрифта, тип шрифта и размер, хочу сделать теперь твик.
цвет шрифта »
Во младшей, первой тетраде байта:
HKEY_CURRENT_USER\Console\ScreenColors
Имейте в виду, что:
в том же параметре в старшей тетраде того же байта задаётся цвет фона;
задаётся не сам цвет, а номер палитры цветов («ColorTable00»-«ColorTable15»);
это лишь первоначальная настройка цветов, даже интерпретатор командной строки может сам управлять цветом вывода («color /?»);
если игрались с настройками «использовать для всех окон с тем же именем» — параметры по умолчанию могут перекрываться параметрами для окна консоли с конкретным именем, например, в подразделе «HKCU\Console\%%SystemRoot%%_system32_cmd.exe».
тип шрифта »
HKEY_CURRENT_USER\Console\FontFamily
и размер »
HKEY_CURRENT_USER\Console\FontSize
P.S. Какое отношение всё это имеет к кодировке?
Iska,
я просто не пойму, я настраивал-настраивал, так вот все запускаемые батники идут с зеленым цветов, когда запускаешь cmd через win+r то с другим, и когда с ярлыка в стандартных с третьим.
вот я и запутался, как настроить, чтоб везде было одинаково и без кракозябр.
ps я темы схожей не нашел, поэтому спросил здесь.
я просто не пойму, я настраивал-настраивал, так вот все запускаемые батники идут с зеленым цветов, когда запускаешь cmd через win+r то с другим, и когда с ярлыка в стандартных с третьим. »
См., например:
если игрались с настройками «использовать для всех окон с тем же именем» — параметры по умолчанию могут перекрываться параметрами для окна консоли с конкретным именем, например, в подразделе «HKCU\Console\%%SystemRoot%%_system32_cmd.exe». »
Iska,
спасибо, поигрался, все понял.
senglory
27-11-2016, 20:58
Win 10 x64 Home Edition English, была установлена русская кодирорвка, к-рая показывалась на ура в FAR. Позавчера поставил последнее обновление на винду и слетела кодировка во всех консольных приложениях. В HKCU пробовал прописывать CodePage - без толку. Что делать?
Что делать? »Сменить шрифт консоли?
senglory
27-11-2016, 21:36
На какой менять-то?
Сменил на Lucida Console - показалось нормально. Но вот прежний Raster 10x18 - ни в какую. Что с этим делать?
senglory, а для самой командной строки — как оно?
senglory
27-11-2016, 22:39
Точно так же. Только в Lucida отображается, а в Raster - кракозябры.
Только в Lucida отображается » можно использовать и другие векторные шрифты, раз с ними нет проблем
http://i2.imageban.ru/out/2016/11/28/7646a6844a09b190a19624d080636eda.png http://i4.imageban.ru/out/2016/11/28/600c81353bdc03a4bc698ed5225558a3.png http://i3.imageban.ru/out/2016/11/28/3d7afd2917715fc2ec43aaf0d980cfc3.png http://i6.imageban.ru/out/2016/11/28/75fb22be475811720c412857244c958d.png
а в Raster - кракозябры. »На удивление в win10 эта часть поменялась по сравнению с XP, завтра я посмотрю какие там шрифты юзаются.
Amigos, теперь ещё расскажите товарищу, как добавить туда дополнительные шрифты ;). Или в теме таковое есть?
Consolas токмо чуток покрупнее трэба, мелкие размеры шрифта не его стихия.
расскажите товарищу, как добавить туда дополнительные шрифты »для этого нужно проверить работоспособность способа под win10, скрины делались под WinXP
Consolas токмо чуток покрупнее трэба »это же True Type - размер произвольный.
расскажите товарищу, как добавить туда дополнительные шрифты » Узнал страшное.
В Win10 не надо никаких твиков реестра, достаточно просто установить моноширинный шрифт с соответствующим уникодным диапазоном символов в систему, и он сам появится в списке
http://i3.imageban.ru/thumbs/2016.11.29/265e3a89f2a42dc8d14530713acf65dd.png (http://imageban.ru/show/2016/11/29/265e3a89f2a42dc8d14530713acf65dd/png)
это же True Type - размер произвольный. »
Я про скриншот. Увидит человече, разочаруется, не зная, что Consolas в принципе предрасположен к большим размерам и вполне на них смотрибелен.
Узнал страшное. В Win10 не надо никаких твиков реестра, »
Amigos, :)!!! Но это всё равно меня не сподвигнет на переход ;).
madeinussr
01-07-2017, 01:18
То есть, на сколько я понял, точечный шрифт, используемый в консоли по умолчанию, в принципе не может отображать кириллицу в других кодировках кроме ср866. Это тот же шрифт, который в notpad называется Terminal и у него там есть только набор символов OEM/DOS. С этим шрифтом в блокноте можно нормально работать с 866, но другие кириллические кодировки он не понимает. И поэтому при вводе CHCP 1251 в консоли вполне нормально получить непонятный набор букв из разных языковых областей шрифта. То есть шрифт отображает символы кириллицы, но их код не соответствует ср1251 и раскладка клавиатуры становится не стандартной при вводе русских символов - они находятся не на тех клавишах. То же происходит и с сообщениями, выводимыми интерпретатором кириллицей. Некоторые номера символов попадают в область кириллицы, но соответствуют совсем другим символам.
Короче, если у вас в консоли при стоящем по умолчанию точечном шрифте команды CHCP 1251 и CHCP 65001 выводят нечитаемые сообщения, это нормально. Не нужно искать причину этого в реестре или системных настройках или в установленных шрифтах. И если вам необходимо, чтобы кирилица отображалась в консоли в кодировках cp1251 и cp65001 придётся отказаться от шрифта стоящего по умолчанию и выбрать lucida console. Я правильно понял?
точечный шрифт, используемый в консоли по умолчанию, в принципе не может отображать кириллицу в других кодировках кроме ср866. »Скажем так.
Точечный шрифт это анохронизм времён Windows 2.0 - Windows 3.1.
И у него … нет кодировки. Совсем нет.
Грубо говоря это набор из 255 маленьких ч/б картинок с нарисованными на них буквами и символами.
В русской windows xp порядок букв на этих картинках совпадает с порядком символов cp866.
Поменять порядок картинок символов в шрифте, расставить их также, как в cp1251 - будет "растровый шрифт, поддерживающий кириллицу в cp1251"
А тот шрифт, что "из коробки" , он да "только cp866"
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.