最近在做一个android小系统,用到了读取SDCard中文本文件(含中文)内容这个功能。刚开始,我就按照一般java读文件的方式写代码,但是,读出来才发现,都是乱码!!!
我就想,是不是读取的方式不对?那换其他的方式试试。然后我就试啊试啊!试了N多方法来读,没想到都是乱码。。。
那我又想,应该是编码转换的问题。我就到网上搜,果然,也碰到了遇到和我一样问题的同胞。
看大部分人的解决方式是:
EncodingUtils.getString(sb.toByteArray(),"GB2312")这种方式。
但是,对我的代码好像没用!!!
EncodingUtils.getString(sb.toByteArray("UTF-8"),"UTF-8")也不行,
EncodingUtils.getString(sb.toByteArray("UTF-8"),"GB2312")还是不行。。。
我不知道为什么好多好多帖子都说这样可行,反正我试了,不行。。。
我那个无奈啊!我那个烦躁啊。。。
后来我又在网上搜,搜着搜着,看到了一个讲txt文件编码方式的帖子。。。我突然有所感悟,会不会是txt文件的编码方式android识别不了,而我们转换的时候又没转对呢?
于是我打开一个txt文档,随便写了点儿中文,没有直接保存,而是"文件" -- > "另存为",然后出现了一个对话框,下面有三行:
第一行:文件名
第二行:保存类型
第三行:编码
然后我看到了.........................默认的编码是ANSI............................神呐!
我选择了UTF-8,保存了,导入模拟器,打开程序读文件,哦了,正常了。。。。。。。。。。。
另外,既然txt文件默认编码方式是ANSI,那么读取的时候是不是可以用ANSI来转换成GB2312或者UTF-8呢?个人认为应该可以,但我没试,有兴趣的可以试试。
再另外,
http://blog.csdn.net/handsomedylan/archive/2011/01/14/6138400.aspx 这个别人的帖子也是为了解决这个问题的。不过我也没试,不知道可不可行。
- 大小: 12 KB
分享到:
相关推荐
### Android读取中文文件乱码解决方法 #### 一、问题背景 在开发Android应用时,经常需要处理中文字符或包含中文的文件。如果处理不当,可能会遇到中文乱码的问题,尤其是在读取本地文件或者从网络下载文件时更为...
然而,在某些旧版本的Android或者非原生Android设备中,可能会遇到中文文件名显示乱码或无法正常读取的问题。这通常与文件系统的编码设置有关,开发者需要确保应用程序正确处理UTF-8编码,以兼容中文文件名。 "镜像...
在Android开发中,读写SD卡上的TXT文件是一项常见的需求,...总之,通过合理的权限配置和有效的代码实现,可以在Android应用中轻松地完成对SD卡上TXT文件的读写操作,但同时也需要注意异常处理和性能优化等方面的问题。
Window下,进行adb shell后,举个例子,如果你的sdcard下保存着中文字符文件名的文件,则在CMD下显示是一些无规律的中文并夹杂着乱码。 出现这种情况的原因是: Android中使用的是UTF-8字符,而CMD默认字符集是ANSI...
在Android系统中,资源管理器是一个至关重要的组件,它负责管理和加载应用程序以及系统中的各种资源,如图片、字符串、布局文件等。这个压缩包文件"sdcard_man"可能包含了与SD卡管理相关的源代码,这将涉及到Android...
在早期的adb版本中,由于编码和字符集的问题,当尝试推送含有非ASCII字符(如中文)的文件时,可能会出现错误或乱码。这一限制给开发者带来了诸多不便,尤其是在处理本地化资源或中文命名的文件时。现在,adb 1.0.32...
在Android应用中,从外部存储如sdcard读取文件数据,需要确保应用具有读取外部存储的权限。使用`FileInputStream`来读取sdcard中的文件,示例如下: ```java FileInputStream fin = new FileInputStream("/sdcard/Y...
以下是从给定文件信息中提取的关键知识点,深入解析了如何在Android环境下通过WebView组件正确加载并执行HTML与JS代码,确保中文字符的正常显示以及解决JS不生效的问题。 #### WebView组件的配置与使用 - **...
由于Linux系统和Android系统对文件编码处理可能有所不同,如果代码中的注释出现乱码问题,用户可以通过留言向作者反馈。这暗示了代码可能是跨平台的,可能包含用于在Linux环境下操作SQLite数据库的代码片段。 标签...
4. .idx 一般是字幕的时间轴文件,不管他,直接拷出来,把后缀改成 .txt,肯定是乱码。 5. 不要紧,直接用 IE 打开,然后编码选 Unicode,文本就变成可识别的简体了,再另存文件,保存成 txt,ok,可以阅读啦! ...
4. .idx 一般是字幕的时间轴文件,不管他,直接拷出来,把后缀改成 .txt,肯定是乱码。 5. 不要紧,直接用 IE 打开,然后编码选 unicode,文本就变成可识别的简体了,再另存文件,保存成 txt,ok,可以阅读啦! ...
- 编码表:字符编码与乱码问题解决。 - **Java实用技术**: - 多线程:线程创建、同步机制、线程间通信。 - 网络编程:IP地址、端口号、协议等基础知识。 - Socket编程:UDP与TCP协议实现。 - 反射:Class对象...
Uri uri = Uri.fromFile(new File("/sdcard/demo.txt")); intent.setDataAndType(uri, "text/plain"); startActivity(intent); ``` 这段代码将打开位于SD卡上的"demo.txt"文件,并使用HTMLViewer进行显示。 总的来...
上述内容虽然存在乱码,但可以推断其涉及的技术操作是通过修改Android系统的`vold.fstab`文件来实现内外置卡互换的。`vold.fstab`文件是Android系统中用于定义存储设备挂载点的重要配置文件,通过修改它,可以改变...