我写了一个小的Java应用程序,它输出包括Unicode字符。 当我使用Eclipse来运行它,我看到的所有预期的输出。
谁应该使用该应用程序的人将运行它作为一个jar文件。 我认为他们可以使用标准的cmd窗口,但在该窗口中的Unicode显示为乱码。
有没有一种方法,使“cmd窗口”识别的Unicode字符并正确显示出来? 或者,是否有任何工具,轻松运行jar文件,并得到正确的输出?
顺便说一句 - 输出重定向到一个文件工作好,但节目是互动的,所以这不会是一个很好的解决方案。
编辑:谢谢大家的建议。 这似乎意味着cmd字体没有我需要的特定字符,这就是为什么改变代码页并没有解决我的问题。
我发现了一个办法 ,以增加更多的等宽字体到控制台,但之后,我将它们添加,我想要做的关于字体(甚至在选择不同尺寸的原始字体之一)的任何变化-被忽略。
我想,我会简单地用另一种工具,它支持更容易chhosing一个不同的充字体试试。
参考: Java的统一在Windows命令行
尝试chcp 1252
或chcp 65001
命令行。 随着龙力控制台或其他字体支持。
问题是与该窗口控制台显示输出的字体。 不幸的是你,这是一个用户设置。
我建议你认为你的用户设置他们的Windows控制台字体为Lucida Console。 该字体应该能够处理宽/ Unicode字符。
尝试CMD / C / U的java your.jar
对于任何答案,首先要检查它。 这是一个简单的控制台程序,它验证更改字体实际上不起作用。
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#,但控制台应用程序应该仍然工作本身。
并查看结果类似,在此期间。
在cmd.exe的UTF-16
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
另外,从是否有一个Windows命令外壳,将显示Unicode字符?
CHCP 65001
DIR > UTF8.TXT
TYPE UTF8.TXT
在C++/C
刚刚使用此: system("chcp 65001");
不要忘了控制台的字体更改为Lucida Console