Previous Entry Share Next Entry
photo25

Про консоль в Windows

Навеяно постом amarao_san про рендеринг иероглифов.

Если вы девелопите, админите и т.д. на винде, всячески рекомендую установить ConEmu, как заменитель GUI для шелла.

Потому что сам по себе cmd, например, юникод умеет, а вот хвосты его UI (точнее, CSRSS) - нет.

Выглядит это как-то так: (цвета настраиваются, вместо cmd можно воткнуть павершелл да и в целом что душе угодно. Умеет хукать cmd, стартуемые из других программ вроде Github for Windows, нормальный копипаст и т.д. и т.п.)



This entry was originally posted at http://wizzard.dreamwidth.org/410677.html. It has comment count unavailable comments. Please comment there using OpenID.

  • 1
nponeccop December 17th, 2014
Я пробовал, не прижилось, уже не помню, почему. В-общем, совет не универсальный

dmytrish December 17th, 2014
Какое-то оно действительно не готовое, я тоже пробовал; возможно, не распробовал.

zhengxi December 17th, 2014
стандартная консоль тоже замечательно показывает юникодные кракозябры (по крайней мере в Windows 7, про ранние не уверен)
хотя требуется некоторое ковыряние в реестре, чтобы разрешить консоли использовать шрифты с ними.


Edited at 2014-12-17 04:04 pm (UTC)

109 December 29th, 2014
cmd не умеет unicode. именно поэтому приходится выставлять "locale for non-Unicode programs".

wizzard0 December 29th, 2014
cmd умеет unicode, не умеет его csrss!

109 December 30th, 2014
ну как же умеет. я вот запускаю cmd, а он мне показывает вопросики вместо русских букв. значит, не умеет.

csrss может быть тоже не умеет, но это мне пофиг, поскольку я запускаю не его, а cmd.

wizzard0 December 30th, 2014
гы. посмотри на скриншот, что ли...

я запускаю любую консольную прогу "просто так" - и она не умеет.
запускаю cmd < unicode_text.txt > unicode_out.txt и всё работает
запускаю cmd в conemu - тоже всё работает.

следовательно, проблема не в cmd

wizzard0 December 30th, 2014
а, постой, я понял, откуда растет источник этого заблуждения. ты знаешь что такое csrss и как отрисовывается консольное окно вообще?

109 December 30th, 2014
нет :)

wizzard0 December 30th, 2014
как рендерится cmd и любые другие консольные приложения, запущенные из GUI, кто мапит их stdin/stdout в окошко консоли: http://blogs.msdn.com/b/oldnewthing/archive/2007/12/31/6909007.aspx

conemu всего лишь делает то же самое, только местами более правильно. и вуаля, юникод начинает работать.

109 December 31st, 2014
> command prompt window (like all console windows) is run under the ClientServer Runtime System (CSRSS)

я, например, не понимаю, что это значит. cmd.exe is running under my account, not csrss, as far as I can tell. unless I choose to run it under administrator.

wizzard0 December 31st, 2014
> я, например, не понимаю, что это значит
пардон, но RTFM.

подсистема, window station, сессия и аккаунт - это 4 разных вещи. не вижу смысла пересказывать архитектуру винды, лучше почитать Руссиновича сразу.

109 December 31st, 2014
ну а я вот, например, несколько более терпелив, отвечая на вопросы, в которых ты не рубишь.

wizzard0 December 31st, 2014
Новый год на носу, имей совесть :) чуть позже отвечу.

109 December 31st, 2014
да я тороплю, что ли? :)

я люблю жеже за то, что можно к дискуссии через месяц вернуться. как я делаю с кактусом, например, или с хрониками пайсано.

  • 1
?

Log in

No account? Create an account