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

标签 java eclipse

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

上面两个有什么不同? 为什么reader2的结果是“?????????” 但 reader1 没问题

最佳答案

参见Javadoc of FileReader :

The constructors of this class assume that the default character encoding [...] are appropriate.

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

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

另请参阅:Charset.defaultCharset()

关于java - 如何在java中读取.csv中文文件以及为什么这两者会导致不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51996792/

相关文章:

Java:使用一个类生成另一个类的对象

java - Android Eclipse NoClassDefFoundError 外部 .jar android 文件

eclipse - 如何解决 Eclipse 中的错误 "No file system is defined for scheme: sourcecontrol"

java - 我们应该如何为空值管理 jdk8 流

c# - 将 LINQ 表达式移植到 Java

java - Eclipse - 在代码点执行表达式?

Java 6 更新 25 虚拟机崩溃 : insufficient memory

java - Java中的ArrayList只打印List中的最后一个对象

java - 使用@Factory TestNG时将参数传递给dataProvide

java - 找一个char优化