你好,
我有一个Java程序,带有命令行界面。 它用在Linux和Windows上。 Java代码是可移植的,我希望它保持可移植性。
我的Java源文件是Unicode – 这是很好的。 在他们中,我有这样的线条:
System.err.println("Paramètre manquant. … ");
我使用Eclipse将程序打包为JAR文件。
然后,程序运行一个像这样的命令:
java -jar MyProgram.jar parameters
在Windows XP命令行中,这给出:
ParamÞtre manquant. …
有没有一种可移植的方式在Java程序中编写带有重音符号的string,以便它们在Windows命令行中正确显示? 或者我们只是不得不忍受Windows用愚蠢地用冰岛刺取代重音E?
我使用Java 6。
在Java 1.6中,您可以使用System.console()而不是System.out.println()来向控制台显示突出的字符。
public class Test2 { public static void main(String args[]){ String s = "caractères français : à é \u00e9"; // Unicode for "é" System.out.println(s); System.console().writer().println(s); } }
和输出是
C:\temp>java Test caractþres franþais : Ó Ú Ú caractères français : à é é
另请参阅将重点字符输出到控制台
使用unicode转义序列: \u00E8
System.err.println("Param\u00E8tre manquant. … ");
这是一个有用的Unicode字符表。
编码unicode字符时,请使用\u<XXXX>
。 它在代码中看起来不会很漂亮,但是它可以工作并且便于携带。
例如:
String specialCharacters= "\u00E1 \u00E9 \u00ED \u00F3 \u00FA"; System.out.println(specialCharacters); // This will print á é í ó ú
检查Alepac的答案为unicode字符表。