Linux против Windows: как консоль отображает символы Юникода? - PullRequest
3 голосов
/ 08 августа 2009

Это вопрос довольно низкого уровня (в смысле «ближе к металлу»).

Мне было интересно, может ли кто-нибудь из вас указать мне документацию, объяснения и т. Д. О том, как при получении символа Unicode (или любого кода символа, но меня особенно интересует Unicode Standard) консоль в Windows, good ol 'cmd.exe (используя, скажем, кодовую страницу 65001) и xterm в Linux начались с, скажем, LC_CTYPE=en_US.UTF-8 поиска соответствующего глифа (и где).

Я знаю, что это может быть сложнее узнать в Windows, но я не могу найти много информации.

Спасибо.

Ответы [ 3 ]

3 голосов
/ 08 августа 2009

Насколько я могу судить, cmd.exe привязан к любой 256-символьной кодовой странице, которую вы определили как "кодовую страницу для программ, не поддерживающих Юникод", или к какому-либо адресу.

Для уточнения, если я установил вышеуказанную настройку на японский, cmd.exe неожиданно заменяет обратную косую черту знаками иены (как и любое другое приложение, не поддерживающее Юникод в системе) и, например, правильно интерпретирует коды ShiftJIS. Установка на нидерландском языке дает мне акцентированное I (я забыл, какой), в то время как другая кодовая страница выдаст наполовину заполненное вертикальное тело вместо того же символа.

Не Unicode. Unicode позволил бы мне делать все три одновременно.

1 голос
/ 08 августа 2009

консоль не поддерживает Unicode. :)

1 голос
/ 08 августа 2009

Консоль использует TextWriter с кодировкой, созданной из кодовой страницы. Это означает, что написанные символы кодируются в байты с использованием специального объекта Encoding для кодовой страницы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...