从Java程序,可移植的方式来编写带重音的字符串

Nic*_*sco 4 java windows portability internationalization non-ascii-characters

你好,

我有一个Java程序,带有命令行界面.它用于Linux和Windows.Java代码是可移植的,我希望它保持可移植性.

我的Java源文件是Unicode的 - 这很好.在他们中间,我有这样的行:

System.err.println("Paramètre manquant. … ");
Run Code Online (Sandbox Code Playgroud)

我使用Eclipse将程序打包为JAR存档.

然后,程序由以下命令运行:

java -jar MyProgram.jar parameters

在Windows XP命令行中,这给出:

ParamÞtre manquant. … 

是否有可移植的方法在Java程序中使用重音编写字符串,以便它们在Windows命令行中正确显示?或者我们只是不得不忍受Windows愚蠢地用冰岛刺取代重音E?

我使用Java 6.

Rea*_*wTo 5

在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);
  }
}
Run Code Online (Sandbox Code Playgroud)

而输出是

C:\temp>java Test
caractþres franþais :  Ó Ú Ú
caractères français :  à é é
Run Code Online (Sandbox Code Playgroud)

另请参阅向控制台输出突出显示的字符