如何在java中读取unicode编码的文件

如何在java中读取unicode编码的文件,java,file-io,unicode,Java,File Io,Unicode,我试图读取一个用Unicode编码的文件(我使用Editplus查找其编码) 我正在使用以下代码:- InputStream inStream = new FileInputStream(logFile); InputStreamReader streamReader = new InputStreamReader(inStream, "Unicode"); final BufferedReader reader = new BufferedReader(streamReader); 但它无法

我试图读取一个用Unicode编码的文件(我使用Editplus查找其编码)

我正在使用以下代码:-

InputStream inStream = new FileInputStream(logFile);
InputStreamReader streamReader = new InputStreamReader(inStream, "Unicode");
final BufferedReader reader = new BufferedReader(streamReader);
但它无法正确读取文件。当我尝试“UTF-8”时,它读取文件,但生成的输出在每个字符后都包含一个空格

我需要读取一个文件并在JList中显示其内容。我搜索了一下,知道了这一点

Unicode字符使用2个字节。对于ASCII文本,每隔一个字节将是二进制0,它将显示为?或者与大多数文本编辑器保持一致

这和我身上发生的事情很相似。我对编码没有太多的知识


任何帮助都将不胜感激。

我不确定“Unicode”的endianness提供了什么,但您应该试试“UTF-16BE”和“UTF-LE”-显然be是大端,LE是小端。(每个16位代码单元中哪个字节排在第一位。)


(我刚刚读到“UTF-16”默认为big-endian,所以我怀疑“Unicode”也会这么做……这意味着“UTF-16LE”更有可能工作。)

@user3293664:我怀疑这相当于“Unicode”。因此,请尝试将endianness显式化…它是一个编码的日志文件。我需要阅读它的内容,并在一个JList中显示它们。我如何才能看到它的二进制表示形式?如果我的答案没有帮助,请发布一个简短的字节示例(如二进制文件编辑器中所示),并将其预期含义作为文本。它在每个字符后显示一个正方形或一个空格。。与其说这是一个样本,不如说这是一个样本。这是什么?大概有一些文本你期待得到-告诉我们那是什么,以及二进制表示。