如何在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/输出。
-
安装console2,这是cmd.exe(和其他shell)的前端。
-
安装后,请按照这里的说明
- 在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
-
您可能需要也可能不需要更改字体。 最初我把字体设置为@NimSum,中文字符旋转了90度。 然后我切换到NimSum(没有@),它出来正确。 然后出于好奇,我转向了Consola,但我仍然可以看到汉字。 所以不知道你是否真的需要设置字体。