0

默认编码为 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,它也可以工作。为什么会这样?

4

2 回答 2

0

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

我希望这可行,因为它告诉您的控制台/外壳/任何显示字符的东西都需要 UTF-8 字符。如果默认行为是期望 ISO-8859-1,那么发送 UTF-8 将不起作用。

于 2012-08-23T14:38:07.613 回答
0

你在 Eclipse 控制台上打印吗?还是在壳里?尝试打印到文件并检查结果。

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

于 2012-08-23T14:39:45.720 回答