如何在Windows下的cmd窗口中显示日语汉字?

我有一个英文的Windows 2003服务器,激活了亚洲语言支持。 命令窗口中可用的两种字体(cmd设置)是光栅和lucida控制台。 没有一个或另一个正确显示汉字(显示为问号)。

有没有解决scheme让他们显示? 在写出控制台之前,我的应用程序中是否有一些转变?

我现在正在编写UTF8,对于一些非ASCII字符(如öäüß)也适用。 写入控制台的源代码具有正确的数据(日文汉字可以在debugging器中正确查看)。 如果有问题,我正在用C#编写应用程序。

编辑:我发现这个链接 ,它解释了问题背后的问题,并提出了C#解决scheme(涉及本地调用)。 这应该适用于.NET 4.5(我未经testing)

如果您find将显示汉字字符集的字体,则可以通过在此registry项下添加值来将该字体添加到cmd设置:

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

价值观:

 Name: 00 Data: Consolas 

我以前做过这个,但在SuperUser上find了这个参考: https : //superuser.com/q/55318

希望这可以帮助

你的应用程序如何编写输出? 基于C字节的stdio调用像printf不会在Windows上支持UTF-8,除非你已经通过说chcp 65001 && somecommand来设置控制台使用UTF-8编码(甚至是有问题)。

没有chcp ,控制台将使用Windows安装的默认代码页,在这种情况下,cp1252,即使您使用的控制台字体具有字形,用汉字写入也是不可能的。

如果你想把Unicode编码器可靠地写入控制台,你将不得不使用像wprintf这样的基于字符的接口。

这就是我如何在Windows 7 Pro英文版上运行cmd.exe中的中文input/输出。

  1. 安装console2,这是cmd.exe(和其他shell)的前端。

  2. 安装后,请按照这里的说明

    • 在registry中删除键“Console2命令窗口”
    • 将以下数据导入到Windowsregistry中:

    • 对于中文(中文)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(没有@),它出来正确。 然后出于好奇,我转向了Consola,但我仍然可以看到汉字。 所以不知道你是否真的需要设置字体。