Windows命令行上的Unicode输出?

时间:2009-06-23 21:35:31

标签: unicode cmd

我编写了一个小型Java应用程序,其输出包含Unicode字符。当我使用Eclipse运行它时 - 我看到所有输出都是预期的。

应该使用该应用程序的人将其作为jar文件运行。我认为他们可以使用标准的cmd窗口,但在这个窗口中,Unicode显示为Gibberish。

有没有办法让“cmd窗口”识别Unicode字符并正确显示它们? 或者,是否有任何工具可以轻松运行jar文件并获得正确的输出?

BTW - 将输出重定向到文件可以正常工作,但程序是交互式的,所以这不是一个好的解决方案。

编辑:感谢大家的建议。 似乎cmd字体没有我需要的特定字符,这就是为什么更改代码页并没有解决我的问题。

我找到了一个way来向控制台添加更多等宽字体,但在我添加它们之后我想对字体进行的任何更改(甚至选择一种不同大小的原始字体) - 是忽略。

我认为我会尝试使用另一种工具,它可以更轻松地填充不同的字体。

6 个答案:

答案 0 :(得分:11)

参考:Java Unicode on Windows Command Line

从命令行尝试chcp 1252chcp 65001。使用Lucida Console或其他字体支持。

答案 1 :(得分:1)

问题是Windows控制台显示输出的字体。不幸的是,这是一个用户设置。

我建议您建议您的用户将其Windows控制台字体设置为Lucida控制台。该字体应该能够处理宽/ unicode字符。

答案 2 :(得分:0)

尝试CMD / c / U java your.jar

答案 3 :(得分:0)

如有任何答案,请先检查。这是一个简单的控制台程序,它验证更改字体实际上不起作用。

using System;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main( string[] args )
        {
            Console.OutputEncoding = System.Text.Encoding.UTF8;
            Console.WriteLine( "日本語です" );
            Console.Write( "Finished. Press a key. " );
            Console.ReadLine();
            return;
        }
    }
}

我会检查答案是否具体是“无法完成”。其他检查途径:使用不同的外壳。即Powershell?我会看看是否有效。

但是,你可以这样做:

ConsoleApplication1.exe > output.txt
notepad.exe output.txt

免责声明:我的示例是C#,但控制台应用程序应该仍然可以正常工作。

同时查看结果。

答案 4 :(得分:0)

UTF-16 on cmd.exe

    Open/run cmd.exe
    Click on the icon at the top-left corner
    Select properties
    Then "Font" bar
    Select "Lucida Console" and OK.
    Write Chcp 10000 at the prompt
    Finally dir /b

也来自 Is there a Windows command shell that will display Unicode characters?

CHCP 65001
DIR > UTF8.TXT
TYPE UTF8.TXT

答案 5 :(得分:0)

C++/C中,只需使用:system("chcp 65001");

别忘了将控制台的字体更改为Lucida Console