默认编码为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,则可以正常工作。为什么会这样?
答案 0 :(得分:0)
如果我将默认编码从ISO-8859-1更改为UTF-8,它可以正常工作。为什么会这样?
我希望这是有效的,因为它告诉你的控制台/ shell /显示字符的任何东西都需要UTF-8字符。如果默认行为是期望ISO-8859-1,那么发送UTF-8将无法正常工作。
答案 1 :(得分:0)
您是否在eclipse控制台上打印?还是在外壳?尝试打印到文件并检查结果。
例如,windows shell仅限于“cp850”字符集。问题可能是由OS shell引起的,而不是由JVM引起的。