我尝试了以下内容:
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输出控制台。
答案 0 :(得分:3)
必须正确编码java文件。查看该文件的属性,并正确设置编码:
答案 1 :(得分:2)
如果你有最近的eclipse版本,你所做的应该是有效的,即使是简单的System.out.println
。
请看以下内容:
Windows -> Preferences -> Fonts -> Default Console Font
)
答案 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