嗨,这是一个简单的问题,尽管我自己也不知道答案...
在法语操作系统上运行的以下代码的输出为
public class FrenchTest {
public static void main(String[] args){
String[] lines = {"Le résultat est", "Nom de l'hôte"};
for(String line : lines){
System.out.println("NOW : " + line);
}
}
//////////////
c:\share>java FrenchTest
NOW : Le résultat est
NOW : Nom de l'hôte
c:\share>CHCP 65001
c:\share>java FrenchTest
NOW : Le résultat est
NOW : Nom de l'hôte
怎么来的?这种情况的编码要点在哪里,它在英语版本的OS上工作正常!
最佳答案
如果您更改代码页,然后告诉java以UTF-8输出,它应该可以工作。请注意,您将需要选择unicode(truetype)字体-我的计算机上安装了Consolas和Lucida Console。
请注意,如下所示,我使用Java 1.6.0_23在我的计算机上重复了最后一个字符。不能真正解释这一点:(
msandiford@foo /cygdrive/c/foo
$ javac FrenchTest.java
msandiford@foo /cygdrive/c/foo
$ java -Dfile.encoding=UTF-8 FrenchTest
NOW : Le résultat estt
NOW : Nom de l'hôtee
msandiford@foo /cygdrive/c/foo
$ java -version
java version "1.6.0_23"
Java(TM) SE Runtime Environment (build 1.6.0_23-b05)
Java HotSpot(TM) Client VM (build 19.0-b09, mixed mode, sharing)
关于java - 为什么system.out.println()在法语OS上返回不同的法语字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7144264/