BufferedReader reader1 = new BufferedReader(new FileReader("1.csv"));
BufferedReader reader2 = new BufferedReader(new InputStreamReader(
new FileInputStream("1.csv"), "utf-8"));
以上两个有什么不同? 为什么 reader2 的结果是"??????????" 但是阅读器1还可以
参见FileReader的Javadoc:
此类的构造函数假定默认字符 编码[...] 是合适的。
或者换句话说,1.csv
似乎是用系统默认编码编码的,而不是用 UTF-8 编码的,以下内容不会输出utf-8
或UTF-8
:
System.out.println(new FileReader("1.csv").getEncoding());
另请参阅:Charset.defaultCharset()