Java 如何读取编码未知的文本文件?
我想读几个文本文件(如CSV),但我不知道编码 由于文本文件可能包含诸如umlauts之类的特殊字符,因此选择正确的编码似乎至关重要Java 如何读取编码未知的文本文件?,java,encoding,java-io,Java,Encoding,Java Io,我想读几个文本文件(如CSV),但我不知道编码 由于文本文件可能包含诸如umlauts之类的特殊字符,因此选择正确的编码似乎至关重要 new BufferedReader(new InputStreamReader(resource.getInputStream(), encoding)); 我尝试了使用ISO_8859_1进行阅读,但它在使用umlauts编码时无法正常工作。所以我尝试了UTF-8,这很有效 但我不知道将来这是否也会导致不同文件出现问题。在阅读一个文件之前,我从来没有读过对文
new BufferedReader(new InputStreamReader(resource.getInputStream(), encoding));
我尝试了使用ISO_8859_1
进行阅读,但它在使用umlauts编码时无法正常工作。所以我尝试了UTF-8
,这很有效
但我不知道将来这是否也会导致不同文件出现问题。在阅读一个文件之前,我从来没有读过对文件进行编码的文件
那么,我应该如何最好地读取编码未知的文件呢?您必须知道编码,如果您不知道,则无法正确读取文件。由于UTF-8有效,请继续使用它。还要向文件的制作人核实他们是否会继续以UTF-8格式制作这些文件。他们应该记录这一点 无法通过编程识别文本文件的编码。唯一的方法是尝试用不同的编码在文本编辑器中打开它,直到你可以阅读文本为止。严格地说,其他两个答案是正确的——你只需要知道编码是什么就可以保证任何东西。但是,有一些库允许您对编码进行有根据的猜测。例如,签出或。可能的副本