如何在java中读取中文文件.csv以及为什么这两者会导致不同的结果


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-8UTF-8

System.out.println(new FileReader("1.csv").getEncoding());

另请参阅:Charset.defaultCharset()

最新更新