彻底解决android读取中文txt的乱码(自动判断文档类型并转码

原创 2011年01月14日 13:36:00

public String convertCodeAndGetText(String str_filepath) {// 转码

                File file = new File(str_filepath);
                BufferedReader reader;
                String text = "";
                try {
                        // FileReader f_reader = new FileReader(file);
                        // BufferedReader reader = new BufferedReader(f_reader);
                        FileInputStream fis = new FileInputStream(file);
                        BufferedInputStream in = new BufferedInputStream(fis);
                        in.mark(4);
                        byte[] first3bytes = new byte[3];
                        in.read(first3bytes);//找到文档的前三个字节并自动判断文档类型。
                        in.reset();
                        if (first3bytes[0] == (byte) 0xEF && first3bytes[1] == (byte) 0xBB
                                        && first3bytes[2] == (byte) 0xBF) {// utf-8

                                reader = new BufferedReader(new InputStreamReader(in, "utf-8"));

                        } else if (first3bytes[0] == (byte) 0xFF
                                        && first3bytes[1] == (byte) 0xFE) {

                                reader = new BufferedReader(
                                                new InputStreamReader(in, "unicode"));
                        } else if (first3bytes[0] == (byte) 0xFE
                                        && first3bytes[1] == (byte) 0xFF) {

                                reader = new BufferedReader(new InputStreamReader(in,
                                                "utf-16be"));
                        } else if (first3bytes[0] == (byte) 0xFF
                                        && first3bytes[1] == (byte) 0xFF) {

                                reader = new BufferedReader(new InputStreamReader(in,
                                                "utf-16le"));
                        } else {

                                reader = new BufferedReader(new InputStreamReader(in, "GBK"));
                        }
                        String str = reader.readLine();

                        while (str != null) {
                                text = text + str + "/n";
                                str = reader.readLine();

                        }
                        reader.close();

                } catch (FileNotFoundException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                } catch (IOException e) {
                        e.printStackTrace();
                }
                return text;
        }
代码不难,觉得有用的可以顶一下。

相关文章推荐

Android 离线log 保存工具类

提供一个自己写的离线Log工具类,将log保存到本地,以后后期排错,工具类可以实现如下功能: 设置log的保存路径设置log保存的文件后缀设置log是否开启(分Android自带的log和本地lo...

Andoird - 解决读取txt文件中文乱码问题

    从SDCard保存的txt文件读取中文到android系统中会出现乱码问题,如何解决这个乱码问题,网上有不少解答方法,譬如说利用 String temp1 = EncodingUtils....

彻底解决android读取中文txt,lrc的乱码(自动判断文档类型并转码)

这几天在研究android的播放器,在读取歌词的时候,老是乱码,使我很纠结: 今天在网上看到一个文件转码的文章,彻底解决了我的乱码问题,这样我就不用自己去手动的转码lrc歌词文件你的编码了,现在与大...

Spring MVC 自带的字符编码过滤器以及Tomcat字符编码设置,彻底解决中文参数乱码问题

java Web项目添加Spring支持后,可使用Spring自带的字符编码过滤器。源码在spring-web-4.1.0.RELEASE.jar包下的org.springframework.web....
  • BeauXie
  • BeauXie
  • 2016年11月29日 10:41
  • 3766

springmvc彻底解决中文乱码问题

1:表单提交controller获得中文参数后乱码解决方案 注意:  jsp页面编码设置为UTF-8 form表单提交方式为必须为post,get方式下面spring编码过滤器不起效果 ...

彻底解决JSP中文乱码问题大全

大家在JSP的开发过程中,经常出现中文乱码的问题,可能一至困扰着大家,现把JSP开发中遇到的中文乱码的问题及解决办法写出来供大家参考。 首先了解一下Java中文问题的由来: Java的内核和cla...

彻底解决Asp.net 文件下载时文件名的中文乱码和空格异常全球性技术难题

 在 asp.net 项目中,我们可以很方便地使用 Response.WriteFile() 方法向客户端输出一个文件。实际使用 asp.net 向客户端输出文件流时,却出现了异常:1、空格问题,当原...

彻底解决mysql中文乱码

mysql是我们项目中非常常用的数据型数据库。但是因为我们需要在数据库保存中文字符,所以经常遇到数据库乱码情况。下面就来介绍一下如何彻底解决数据库中文乱码情况。...

彻底解决Spring MVC 中文乱码 问题

1:表单提交controller获得中文参数后乱码解决方案 注意: jsp页面编码设置为UTF-8 form表单提交方式为必须为post,get方式下面spring编码过滤器不起效果 修改w...
  • kalision
  • kalision
  • 2015年06月10日 14:03
  • 180501
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:彻底解决android读取中文txt的乱码(自动判断文档类型并转码
举报原因:
原因补充:

(最多只允许输入30个字)