我试图从SD卡上读取文件,并且我被告知它是unicode格式。但是,当我尝试阅读我得到以下文件:Android读取文件的编码问题
这是我用来读取文件的代码:
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();
如果我写的输出到文件这是当我用十六进制编辑器打开它时得到的结果:
有关我需要如何正确读取文件的想法?
不确定,但我尝试应用BOM清除代码,它似乎使情况变得更糟!我想最简单的解决方案是去掉所有那些怪异的A字符 - 不幸的是我不知道unicode字符是这样做的。 – RichW 2011-03-28 10:55:17
删除这些字符不会解决问题。你确定它是一个UTF-8文件吗?你可以在十六进制编辑器中查看文件并发布一个截屏或前几个字节的十六进制代码吗? – RoToRa 2011-03-28 11:04:00
我只知道它是unicode。我试过UTF-16,它完全不可读,它只是由许多狡猾的角色组成。根据要求,我输出了每个字符的十六进制代码(请参阅原始文章)。看起来,每个字符之间有一个0 .. – RichW 2011-03-28 11:17:47