Как отобразить японский кандзи внутри окна cmd под окнами?
У меня есть английский сервер Windows 2003 с поддержкой азиатского языка. Два только шрифта, доступные для командного окна (настройки cmd), - это растровая и консоль lucida. Ни тот, ни другой не отображают Кандзи правильно (отображается как знак вопроса).
Есть ли решение для их отображения?
Есть ли какое-то преобразование, которое я должен сделать в своем приложении, прежде чем выходить на консоль?
Я пишу UTF8 на данный момент, что хорошо работает и для некоторых не ASCII-символов (например, öäüß). Запись исходного кода на консоль имеет правильные данные (кандзи можно просматривать в отладчике правильно). Если это имеет значение, я пишу приложение на С#.
EDIT:
Я нашел ссылку , которая объясняет проблемы, стоящие за этой проблемой, и представляет решение для С#. Это будет хорошо работать с .NET 4.5 (непроверенный мной)
Ответы
Ответ 1
Если вы найдете шрифт, который отобразит набор символов кандзи, вы можете добавить этот шрифт в настройки cmd, добавив значения под этим ключом реестра:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont\
значения:
Name: 00
Data: Consolas
Я сделал это раньше, но нашел эту ссылку на SuperUser: https://superuser.com/q/55318
Надеюсь, что это поможет
Ответ 2
Как вы записываете вывод приложения? Вызовы stdio на основе байтов, такие как printf
, не будут поддерживать UTF-8 в Windows, если вы специально не настроили консоль на использование кодировки UTF-8, сказав chcp 65001 && somecommand
(и даже тогда есть проблемы).
Без chcp
консоль будет использовать кодовую страницу установки Windows по умолчанию, в данном случае cp1252, а запись в кандзи будет невозможна, даже если шрифт консоли, который вы используете, имеет для него глифы.
Если вы хотите надежно записать Unicode в консоль, вам придется использовать интерфейсы на основе символов, например wprintf
.
Ответ 3
Вот как я могу получить китайский вход/вывод в cmd.exe, работающий на Windows 7 Pro English Version.
-
Установите console2,, который является интерфейсом для cmd.exe(и других оболочек).
-
После установки следуйте инструкциям здесь
- Удалить ключ "Console2 command window" в реестре
-
Импортируйте следующие данные в реестр Windows:
-
Для китайского (中文) Windows XP и Vista:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Console\Console2 command window]
"CodePage"=dword:000003a8
"FontSize"=dword:000a0000
"FontFamily"=dword:00000036
"FontWeight"=dword:00000190
"FaceName"="細明體"
"HistoryNoDup"=dword:00000000
-
Для японского (日本語) Windows XP и Vista:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Console\Console2 command window]
"CodePage"=dword:000003a8
"FontSize"=dword:000a0000
"FontFamily"=dword:00000036
"FontWeight"=dword:00000190
"FaceName"="MS 明朝"
"HistoryNoDup"=dword:00000000
-
Возможно, вам придется менять шрифт. Первоначально у меня был шрифт, установленный на @NimSum, и китайские символы вышли вращаться на 90 градусов. Затем я переключился на NimSum (без @), и это получилось правильно. Тогда просто из любопытства я переключился на Консолу, и все же я все еще вижу китайских персонажей. Поэтому не уверен, что вам действительно нужно установить шрифт или нет.