我正在尝试从 SD 卡读取文件,但我被告知它是 unicode 格式。但是,当我尝试读取该文件时,我得到以下信息:
这是我用来读取文件的代码:
InputStreamReader fw = new InputStreamReader(new FileInputStream(root.getAbsolutePath()+"/Drive/sdk/cmd.62.out"), "UTF-8");
char[] buf = new char[255];
fw.read(buf);
String readString = new String(buf);
Log.d("courierread",readString);
fw.close();
如果我将该输出写入文件,这就是我在十六进制编辑器中打开它时得到的结果:
对于我需要做什么才能正确读取文件有什么想法吗?
最佳答案
该文件是否有 byte-order mark ?在这种情况下请查看Reading UTF-8 - BOM marker
编辑(来自评论):对我来说,这看起来像小端 UTF-16。尝试使用字符集“UTF-16LE”。
关于java - Android读取文件编码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5457226/