java - Android读取文件编码问题

标签 java android encoding

我正在尝试从 SD 卡读取文件,但我被告知它是 unicode 格式。但是,当我尝试读取该文件时,我得到以下信息:

Encoded file

这是我用来读取文件的代码:

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();

如果我将该输出写入文件,这就是我在十六进制编辑器中打开它时得到的结果: Hex info

对于我需要做什么才能正确读取文件有什么想法吗?

最佳答案

该文件是否有 byte-order mark ?在这种情况下请查看Reading UTF-8 - BOM marker

编辑(来自评论):对我来说,这看起来像小端 UTF-16。尝试使用字符集“UTF-16LE”。

关于java - Android读取文件编码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5457226/

相关文章:

java - 无法在 eclipse 中为 google places api 项目导入库

android - 多次执行某个 Activity 时出现 "lead to deadlock"错误

swift - 如何在知道字符数但不知道字节数的情况下解码 UTF-8?

unicode - Python 3 UnicodeEncodeError : 'ascii' codec can't encode characters

ruby - 在 Heroku 中将 UTF-8 设置为默认字符串编码

java - Jboss As 5 和 activemq

java - 自动调整 JTabbedPane 大小

java - jooq RecordListener 永远不会捕获 updateEnd 和 updateStart 事件

android - 智能合约包装器的交易哈希和超时异常

android - 将 UI 首选项摘要字段设置为首选项的值