我编写了一个小型Java应用程序,其输出包含Unicode字符。当我使用Eclipse运行它时 - 我看到所有输出都是预期的。
应该使用该应用程序的人将其作为jar文件运行。我认为他们可以使用标准的cmd窗口,但在这个窗口中,Unicode显示为Gibberish。
有没有办法让“cmd窗口”识别Unicode字符并正确显示它们? 或者,是否有任何工具可以轻松运行jar文件并获得正确的输出?
BTW - 将输出重定向到文件可以正常工作,但程序是交互式的,所以这不是一个好的解决方案。编辑:感谢大家的建议。 似乎cmd字体没有我需要的特定字符,这就是为什么更改代码页并没有解决我的问题。
我找到了一个way来向控制台添加更多等宽字体,但在我添加它们之后我想对字体进行的任何更改(甚至选择一种不同大小的原始字体) - 是忽略。
我认为我会尝试使用另一种工具,它可以更轻松地填充不同的字体。
答案 0 :(得分:11)
参考:Java Unicode on Windows Command Line
从命令行尝试chcp 1252
或chcp 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)
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