Как отобразить японский кандзи внутри окна cmd под окнами? - PullRequest
15 голосов
/ 23 сентября 2010

У меня есть английский сервер Windows 2003 с активированной поддержкой азиатского языка. Для командного окна доступны только два шрифта (настройки cmd): растр и консоль lucida. Ни тот, ни другой не отображают кандзи правильно (отображается в виде знака вопроса).

Есть ли решение для их отображения? Есть ли какое-то преобразование, которое я должен сделать в своем приложении перед записью на консоль?

Я сейчас пишу UTF8, что хорошо работает и для некоторых не ASCII-символов (например, öäüß). Исходный код, записывающий в консоль, содержит правильные данные (кандзи можно правильно просматривать в отладчике). Если это имеет значение, я пишу приложение на C #.

EDIT: Я нашел эту ссылку , которая объясняет проблемы, стоящие за этой проблемой, и представляет решение (включая собственные вызовы) для C #. Это должно хорошо работать с .NET 4.5 (не проверено мной)

Ответы [ 3 ]

5 голосов
/ 23 сентября 2010

Если вы найдете шрифт, который будет отображать набор символов кандзи, вы можете добавить этот шрифт в настройки cmd, добавив значения в этом разделе реестра:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont\

Значения:

Name: 00
Data: Consolas

Я делал это раньше, но нашел эту ссылку на SuperUser: https://superuser.com/q/55318

Надеюсь, это поможет

3 голосов
/ 28 апреля 2012

Вот так я могу получить китайский ввод / вывод в cmd.exe, работающем в английской версии Windows 7 Pro.

  1. Установка console2, , который является интерфейсом для cmd.exe (и других оболочек).

  2. После установки следуйте инструкции здесь

    • Удалить ключ "Командное окно консоли2" в реестре
    • Импорт следующих данных в реестр 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
      
  3. Вы можете или не можете менять шрифт. Изначально я установил шрифт @NimSum, и китайские иероглифы вышли повернуть на 90 градусов. Затем я переключился на NimSum (без @), и он вышел правильно. Тогда просто из любопытства я переключился на Консолу, и все же я все еще вижу китайские иероглифы. Поэтому не уверен, нужно ли вам устанавливать шрифт или нет.

3 голосов
/ 23 сентября 2010

Как ваше приложение пишет вывод?Вызовы cdio на основе байтов C, такие как printf, не будут поддерживать UTF-8 в Windows, если вы специально не настроили консоль на использование кодировки UTF-8, сказав chcp 65001 && somecommand (и даже в этом случае возникают проблемы).

Без chcp консоль будет использовать кодовую страницу установки Windows по умолчанию, в данном случае cp1252, и запись на кандзи будет невозможна, даже если у используемого вами шрифта консоли есть глифы.

Если вы хотите надежно записать Unicode на консоль, вам придется использовать символьные интерфейсы, такие как wprintf.

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