对于Android读取文件时的乱码解决(仅对包含BOM信息的文本有用)
来源:互联网 发布:查药物的软件 编辑:程序博客网 时间:2024/06/06 02:51
自己正在做一个音乐播放器,在网上找了一个歌词显示的View,直接传文件地址进去,发现碰到GBK各种崩
在网上找了下资料,暂时这么解决了下(然而那个博客忘了记下来了)
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));bis.mark(4);BufferedReader reader;byte[] first3bytes=new byte[3];//找到文档的前三个字节并自动判断文档类型。bis.read(first3bytes);bis.reset();if (first3bytes[0] == (byte) 0xEF && first3bytes[1] == (byte) 0xBB && first3bytes[2] == (byte) 0xBF) { <span style="font-family:SimSun;">//UTF-8</span>
reader = new BufferedReader(new InputStreamReader(bis, "utf-8"));} else if (first3bytes[0] == (byte) 0xFF && first3bytes[1] == (byte) 0xFE) { //Unicodereader = new BufferedReader( new InputStreamReader(bis, "unicode"));} else if (first3bytes[0] == (byte) 0xFE && first3bytes[1] == (byte) 0xFF) { //UTF-16bereader = new BufferedReader(new InputStreamReader(bis, "utf-16be"));} else if (first3bytes[0] == (byte) 0xFF && first3bytes[1] == (byte) 0xFF) { //UTF-16lereader = new BufferedReader(new InputStreamReader(bis, "utf-16le"));} else {reader = new BufferedReader(new InputStreamReader(bis, "GBK")); //其他编码,这里默认认为是GBK中文}
String line = reader.readLine();
主要依据是在Unicode,UTF-8,UTF-16文档中一般在头部都包含有BOM信息,以此分辨其编码
附上BOM信息表(From Wikipedia):
PS:都用UTF-8不就好了
0 0
- 对于Android读取文件时的乱码解决(仅对包含BOM信息的文本有用)
- 读取文本出现 锘 * 系列乱码错误(UTF-8 BOM问题)的原因及解决方法
- 读取properties文件以及解决读取时的乱码问题
- android解决读取中文文件乱码的问题
- Silverlight读取包含中文的txt(解决乱码问题)
- Java读取UTF-8格式txt文件第一行出现乱码——问号“?”及解决;Java读带有BOM的UTF-8文件乱码原因及解决方法
- Java读取UTF-8格式txt文件第一行出现乱码——问号“?”及解决;Java读带有BOM的UTF-8文件乱码原因及解决方法
- Java读取UTF-8格式txt文件第一行出现乱码——问号“?”及解决;Java读带有BOM的UTF-8文件乱码原因及解决方法
- Java读取UTF-8格式txt文件第一行出现乱码——问号“?”及解决;Java读带有BOM的UTF-8文件乱码原因及解决方法
- Java读取UTF-8格式txt文件第一行出现乱码——问号“?”及解决;Java读带有BOM的UTF-8文件乱码原因及解决方法
- Java读取UTF-8格式txt文件第一行出现乱码——问号“?”及解决;Java读带有BOM的UTF-8文件乱码原因及解决方法
- Java读取UTF-8格式txt文件第一行出现乱码——问号“?”及解决;Java读带有BOM的UTF-8文件乱码原因及解决方法
- Java读取UTF-8格式txt文件第一行出现乱码——问号“?”及解决;Java读带有BOM的UTF-8文件乱码原因及解决方法
- Java读取文件出现乱码的解决
- Java读取UTF-8格式文件第一行出现乱码——问号“?”及解决 And Java读带有BOM的UTF-8文件乱码原因及解决方法
- 一行一行的读取txt中文文本(解决乱码问题)
- 读取文件时出现中文乱码问题的解决
- Java读取带有BOM的UTF-8文件乱码原因及解决办法
- 黑马程序员——高新技术——反射(下半部分)
- Qt打开目录
- android 设置引导页延时启动
- Lua学习之基本语法
- Jesus Is Here(区域赛网络赛选拔)
- 对于Android读取文件时的乱码解决(仅对包含BOM信息的文本有用)
- Windows,Linux的select函数功能差异
- scrapy创建项目详解
- iOS9 HTTP 不能正常使用的解决方法
- 手绘折线图
- Android中监听EditText文本输入
- swift 基础语法知识
- activity的四种启动模式
- c++有默认参数的函数——笔记