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

时间:2015-01-20 14:23:40

标签: java encoding java-io

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

由于文本文件可能包含像变音符号这样的特殊字符,因此选择正确的编码似乎至关重要。

new BufferedReader(new InputStreamReader(resource.getInputStream(), encoding));

我尝试用ISO_8859_1进行阅读,这对于编码的变音符号不起作用。所以我尝试了UTF-8,这是有效的。

但是我将来不知道这是否也会导致不同文件出现问题。在阅读文件编码文件之前,我现在从未这样做过。

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

3 个答案:

答案 0 :(得分:1)

严格地说,其他两个答案是正确的 - 您只需知道保证编码是什么。但是,有一些库可以让你对编码做出有根据的猜测。例如,请查看ICU4Jjchardet

答案 1 :(得分:0)

您必须知道编码,如果您不知道它,则无法正确读取文件。因为UTF-8的工作原理只是继续使用它。如果他们将继续以UTF-8生成它们,还要检查文件的制作者。他们应该记录下来。

答案 2 :(得分:0)

无法以编程方式识别文本文件的编码。唯一的方法是尝试在具有不同编码的文本编辑器中打开它,直到您可以阅读文本