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

如何在java中读取.csv中文文件,以及为什么这两个文件会导致不同的结果,java,eclipse,Java,Eclipse,以上两种有什么不同? 为什么reader2的结果是“??” 但是reader1还可以请参见: 此类的构造函数假定为默认字符 编码[…]是合适的 或者换句话说,1.csv似乎是用系统默认编码编码的,而不是用UTF-8编码的,并且以下内容将不会输出UTF-8或UTF-8: BufferedReader reader1 = new BufferedReader(new FileReader("1.csv")); BufferedReader reader2 = new BufferedReader(n

以上两种有什么不同? 为什么reader2的结果是“??” 但是reader1还可以

请参见:

此类的构造函数假定为默认字符 编码[…]是合适的

或者换句话说,
1.csv
似乎是用系统默认编码编码的,而不是用UTF-8编码的,并且以下内容将不会输出
UTF-8
UTF-8

BufferedReader reader1 = new BufferedReader(new FileReader("1.csv"));
BufferedReader reader2 = new BufferedReader(new InputStreamReader(
                new FileInputStream("1.csv"), "utf-8"));

另请参见:

默认编码可能是“utf-16”(而不是“utf-8”)。
FileStreamReader
用于读取文件的原始字节流,通常是图像
FileReader
是适合从文件中读取字符的类。如果您能提供完整的代码,我们可以帮助您了解为什么前者不适用于您。第一个使用您系统的默认字符集,可能不是“utf-8”。您需要知道文件使用的是什么字符集。
System.out.println(new FileReader("1.csv").getEncoding());