如何将“rājshāhi”打印到Eclipse输出控制台?

时间:2012-05-25 13:46:37

标签: java eclipse unicode

我尝试了以下内容:

System.out.println("rājshāhi");
new PrintWriter(new OutputStreamWriter(System.out), true).println("rājshāhi");
new PrintWriter(new OutputStreamWriter(System.out, "UTF-8"), true).println("rājshāhi");
new PrintWriter(new OutputStreamWriter(System.out, "ISO-8859-1"), true).println("rājshāhi");

产生以下输出:

r?jsh?hi
r?jsh?hi
rÄ?jshÄ?hi
r?jsh?hi

那么,我做错了什么?

感谢。

P.S。

我在Windows 7上使用Eclipse Indigo。输出转到Eclipse输出控制台。

5 个答案:

答案 0 :(得分:3)

必须正确编码java文件。查看该文件的属性,并正确设置编码:

enter image description here

答案 1 :(得分:2)

如果你有最近的eclipse版本,你所做的应该是有效的,即使是简单的System.out.println

请看以下内容:

  • 您正在使用的eclipse版本
  • 文件是否编码正确。见@马修的答案。我认为情况就是这样,否则eclipse将不允许你保存文件(会警告“不支持的字符”)
  • 控制台的字体(Windows -> Preferences -> Fonts -> Default Console Font
  • 将文本保存到文件时是否正确显示字符

enter image description here

答案 2 :(得分:1)

实际上,复制代码并在我的计算机上运行它给了我以下输出:

rājshāhi
rājshāhi
rājshāhi
r?jsh?hi

看起来除了最后一行之外,所有行都可以工作。获取系统默认字符集(请参阅this answer)。我的是UTF-8。看看更改默认字符集是否有所作为。

以下任一行都将获得您的默认字符集:

System.out.println(System.getProperty("file.encoding"));
System.out.println(Charset.defaultCharset());

要更改默认编码,请参阅this answer

答案 3 :(得分:0)

确保在创建班级时指定文本文件编码值UTF-8。 一旦用以后的任何其他文本文件编码创建了一个类,你就无法改变编码系统,即使eclipse允许你也不会反映。 因此,使用TextFile Encoding UTF 8创建一个新类。它肯定会有效。

编辑:在您的情况下,虽然您尝试以编程方式协助文本文件编码,但它没有产生任何影响,它采用容器继承编码(Cp1252)

答案 4 :(得分:0)

使用最新的Eclipse版本帮助我在控制台上实现了UTF-8编码 我使用了Luna版本的Eclipse并设置了Properties-> Info-> Others-> UTF-8