Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何读取编码未知的文本文件?_Java_Encoding_Java Io - Fatal编程技术网

Java 如何读取编码未知的文本文件?

Java 如何读取编码未知的文本文件?,java,encoding,java-io,Java,Encoding,Java Io,我想读几个文本文件(如CSV),但我不知道编码 由于文本文件可能包含诸如umlauts之类的特殊字符,因此选择正确的编码似乎至关重要 new BufferedReader(new InputStreamReader(resource.getInputStream(), encoding)); 我尝试了使用ISO_8859_1进行阅读,但它在使用umlauts编码时无法正常工作。所以我尝试了UTF-8,这很有效 但我不知道将来这是否也会导致不同文件出现问题。在阅读一个文件之前,我从来没有读过对文

我想读几个文本文件(如CSV),但我不知道编码

由于文本文件可能包含诸如umlauts之类的特殊字符,因此选择正确的编码似乎至关重要

new BufferedReader(new InputStreamReader(resource.getInputStream(), encoding));
我尝试了使用
ISO_8859_1
进行阅读,但它在使用umlauts编码时无法正常工作。所以我尝试了
UTF-8
,这很有效

但我不知道将来这是否也会导致不同文件出现问题。在阅读一个文件之前,我从来没有读过对文件进行编码的文件


那么,我应该如何最好地读取编码未知的文件呢?

您必须知道编码,如果您不知道,则无法正确读取文件。由于UTF-8有效,请继续使用它。还要向文件的制作人核实他们是否会继续以UTF-8格式制作这些文件。他们应该记录这一点

无法通过编程识别文本文件的编码。唯一的方法是尝试用不同的编码在文本编辑器中打开它,直到你可以阅读文本为止。严格地说,其他两个答案是正确的——你只需要知道编码是什么就可以保证任何东西。但是,有一些库允许您对编码进行有根据的猜测。例如,签出或。

可能的副本