我試圖從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