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

时间:2010-09-23 16:14:56

标签: windows utf-8 console cmd

我有一个启用了亚洲语言支持的英文版Windows 2003服务器。命令窗口可用的两种唯一字体(cmd设置)是raster和lucida console。这两者都没有正确显示汉字(显示为问号)。

是否有解决方案让它们显示出来? 在写入控制台之前,我的应用程序中是否必须进行一些转换?

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

编辑: 我发现这个link解释了问题背后的问题,并提出了C#的解决方案(涉及本机调用)。这适用于.NET 4.5(我未经测试)

4 个答案:

答案 0 :(得分:5)

如果找到显示汉字字符集的字体,可以通过在此注册表项下添加值将该字体添加到cmd设置:

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

值:

Name: 00
Data: Consolas

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

希望这有帮助

答案 1 :(得分:3)

您的应用程序如何编写输出?像printf这样的基于C字节的stdio调用在Windows上不支持UTF-8,除非您通过说chcp 65001 && somecommand专门设置控制台使用UTF-8编码(即使那时存在问题)

如果没有chcp,控制台将使用Windows安装的默认代码页,在本例中为cp1252,即使您使用的控制台字体具有字形,也无法使用汉字书写。

如果要可靠地将Unicode写入控制台,则必须使用基于字符的接口,如wprintf

答案 2 :(得分:3)

这是我在Windows 7 Pro英文版上运行的cmd.exe中输入/输出的方法。

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

  2. 安装完成后,请按照here

    说明操作
    • 删除键" Console2命令窗口"在注册表中
    • 将以下数据导入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(没有@),它正确地出来了。然后出于好奇我转到了Consola,但我还能看到汉字。所以不确定你是否真的必须设置字体。

答案 3 :(得分:0)

Consolas(即使在Windows 10上也是如此)在控制台中无法正确显示日语字符;我检查了“字符映射表”中的字体,它根本没有任何东南亚语言的字形。您需要将控制台字体设置为MS Mincho或类似的亚洲支持字体来显示日语字符。这还将把反斜杠更改为日元符号,这在日本系统中是标准的事情。您不需要更改代码页或语言环境设置,但至少需要安装日语支持才能安装日语字体。在Windows Server 2003和Windows XP之类的NT5系统上,其区域和语言选项中都有一个复选框。在NT6(Vista及更高版本)上,您只需添加日语IME,它就会安装所需的文件。