如何使用java 1.4在控制台上打印法语字符

时间:2012-10-17 14:25:07

标签: java character-encoding

从过去5个小时开始,我一直在处理与法国人有关的问题。

实际问题是,一些法语字符存储在数据库(oracle)中,而m试图读取它们并输出到word文件。

令人惊讶的是,所有法国人都认可的字符显示为“?”。最初我认为这将是编码格式的问题,并试图解决它。但是,我无法理解。

我正在运行我的应用程序的java版本是1.4,带有tomcat 5.我缩小了我的问题并考虑在控制台上打印正常的法语字符,令我惊讶的是它们被打印为??。冲浪了大约2个小时后,我对java使用的编码和默认字符集有所了解。有趣的是,我发现谷歌上的两种方法可以适合我的灵魂。但是当我尝试它们时,它们没有用,它们仍在打印?在控制台上。能否请你澄清一下,或者给我解决方案,或者哪里出错了。

以下是我尝试过的代码段。

public static void test() {
    System.out.println("in test");
 PrintStream ps = null;
 String javaString = 
  "caractères français :  à é \u00e9";  // Unicode for "é"

 try {
   ps = new PrintStream(System.out, true, "Cp850");
 } catch (UnsupportedEncodingException error) {
   System.err.println(error);
   System.exit(0);
 }

 ps.println(javaString);
}

第二个是:

public static void main(String args[]){
String javaString = 
  "caractères français :  à é \u00e9";  // Unicode for "é"
try {
  // output to the console
  Writer w = 
    new BufferedWriter
       (new OutputStreamWriter(System.out, "Cp850"));
  w.write(javaString);
  w.flush();
   test();
  w.close();  
  test();
  }
catch (Exception e) {
  e.printStackTrace();
  }
}

0 个答案:

没有答案