从文件中读取unicode数据

时间:2012-08-23 14:31:27

标签: java

默认编码为ISO-8859-1

    BufferedReader bis = new BufferedReader(new InputStreamReader(new FileInputStream("file having unicode characters"),"UTF-8"));
    String strTemp = bis.readLine();// on debugging strTemp is having actual unicode data


    System.out.println(strTemp);// uses default encoding which is ISO-8859-1,So not printing   ///actual data


   PrintStream psTemp = new PrintStream(System.out, true, "UTF-8");
   psTemp.println(strTemp);// here i am giving encoding as UTF-8,still not printing unicode data.

即使我在PrintStream构造函数中将编码设置为UTF-8,我也无法打印unicode数据,如果我将默认编码从ISO-8859-1更改为UTF-8,则可以正常工作。为什么会这样?

2 个答案:

答案 0 :(得分:0)

  

如果我将默认编码从ISO-8859-1更改为UTF-8,它可以正常工作。为什么会这样?

我希望这是有效的,因为它告诉你的控制台/ shell /显示字符的任何东西都需要UTF-8字符。如果默认行为是期望ISO-8859-1,那么发送UTF-8将无法正常工作。

答案 1 :(得分:0)

您是否在eclipse控制台上打印?还是在外壳?尝试打印到文件并检查结果。

例如,windows shell仅限于“cp850”字符集。问题可能是由OS shell引起的,而不是由JVM引起的。