如何从Java中具有unicode的文件中读取数据?
我有一个tsv文件,其中包含Unicode数据,如“pär Lagerkvist获得诺贝尔物理学奖” 但是当我用Java阅读它时,我收到了如下输出 “P�拉格克维斯特获得了诺贝尔物理学奖。” 我使用下面的代码读取文件如何从Java中具有unicode的文件中读取数据?,java,intellij-idea,unicode,java-11,Java,Intellij Idea,Unicode,Java 11,我有一个tsv文件,其中包含Unicode数据,如“pär Lagerkvist获得诺贝尔物理学奖” 但是当我用Java阅读它时,我收到了如下输出 “P�拉格克维斯特获得了诺贝尔物理学奖。” 我使用下面的代码读取文件 BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(fileName), "UTF-8")); while ((st = br.readLine()) != null) {
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(fileName), "UTF-8"));
while ((st = br.readLine()) != null) {
System.out.println(st);
}
我想你是在用Intellij的主意。在这种情况下,设置控制台编码
-Dfile.encoding=UTF-8
在Windows上,编辑idea.exe.vmoptions
文件并添加上一行
有关详细信息,请参阅。听起来好像读得很好。问题是您使用的终端似乎不知道如何输出Unicode。旁注:对于Java 11,您应该使用
try(var br=Files.newBufferedReader(path.get(fileName)){/*您的代码使用BufferedReader*/}
读取带有BufferedReader
的UTF-8编码文件。