从Java程序中,用便携的方式编写带有重音符号的string

你好,

我有一个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字符表。