从SDCard保存的txt文件读取中文到android系统中会出现乱码问题,如何解决这个乱码问题,网上有不少解答方法,譬如说利用String temp1 =EncodingUtils.getString(strLine.getBytes(),"GB2312"); 但并非对所有的情况都适用,解决乱码问题首先要明白为什么会乱码。究其原因,是因为txt文件在win系统上保存时默认为ANSI格式,而android目前只支持UTF-8编码,因此将txt文件的中文读入android系统中会产生乱码。也有人说直接将txt另存为UTF-8编码格式来解决乱码问题,但这种方法指标不治本,不能要求用户手动去更改格式,客户第一嘛。因此还是需要想办法在程序中进行处理。
以下做了一些编码格式的测试:

测试文本: 122.11196,29.90573,北仑固废厂 测试代码段:

reader=new BufferedReader(new FileReader(filename));

strLine=reader.readLine() ;

String temp1 = EncodingUtils.getString(strLine.getBytes(),"GB2312");

String temp2 = EncodingUtils.getString(strLine.getBytes("utf-8"),"utf-8");

String temp3 = EncodingUtils.getString(strLine.getBytes(),"utf-8");

将文件存成 Unicode 格式

将文件存成utf-8 格式

这种方式能得到非乱码的中文显示,但对于 utf-8 格式下取得的经纬度数字利用double lon = Double.parseDouble(lat); 报错 NumberFormatException,原因可能是 parseDouble(lat)方法不能处理存成utf-8格式的带标点小数。 将文件 存成 ANSI 格式

将代码改为:

reader = new BufferedReader(new InputStreamReader(new FileInputStream(filename),"GB2312"));

strLine=reader.readLine() ;

String temp1 = EncodingUtils.getString(strLine.getBytes(),"GB2312");

String temp2 = EncodingUtils.getString(strLine.getBytes("utf-8"),"utf-8");

String temp3 = EncodingUtils.getString(strLine.getBytes(),"utf-8");

即解决了中文乱码问题,又解决了Double.parseDouble(lat)报错问题。

转载于:https://www.cnblogs.com/umlzhang/p/3977858.html

转载 http://blog.csdn.net/dengta_snowwhite/article/details/6418384相关推荐

  1. Win10双击调试 转载 http://blog.csdn.net/sagittarius_warrior/article/details/51305046

    转:注1:本文非本人所写,尊重原作者劳动成果.仅是对原文备份. http://blog.csdn.net/sagittarius_warrior/article/details/51305046(原来 ...

  2. 转载(https://blog.csdn.net/qq_36738482/article/details/72823509)大数据的概念

    1.大数据定义 对于"大数据"(Big data)研究机构Gartner给出了定义,"大数据"是需要新处理模式才能具有更强的决策力.洞察发现力和流程优化能力 的 ...

  3. 从request获取各种路径总结 转载:http://blog.csdn.net/piaoxuan1987/article/details/8541839 equest.getRealPath()

    https://www.cnblogs.com/hello-yao-ge/p/6606564.html 转载:http://blog.csdn.net/piaoxuan1987/article/det ...

  4. WordPress数据库的基本构造(转载自http://blog.csdn.net/ppiao1970hank/article/details/6301812)...

    转载自http://blog.csdn.net/ppiao1970hank/article/details/6301812 WordPress使用MySQL数据库.作为一个开发者,我们有必要掌握Wor ...

  5. 手机网络抓包 转载记录http://blog.csdn.net/skylin19840101/article/details/43485911

    Fiddler不但能截获各种浏览器发出的HTTP请求, 也可以截获各种智能手机发出的HTTP/HTTPS请求.Fiddler能捕获IOS设备发出的请求,比如IPhone, IPad, MacBook. ...

  6. Ubuntu安装软件是始终出现dpkg错误(转载,原文链接:https://blog.csdn.net/cyf15238622067/article/details/53534629)

    Ubuntu安装软件是始终出现dpkg错误 一.设置镜像 二. 出现错误死循环时,使用下述命令 sudo dpkg -i --force-overwrite sudo dpkg -i --force- ...

  7. Android Volley完全解析(二),使用Volley加载网络图片 转载:http://blog.csdn.net/guolin_blog/article/details/174

    转载:http://blog.csdn.net/guolin_blog/article/details/17482165 在上一篇文章中,我们了解了Volley到底是什么,以及它的基本用法.本篇文章中 ...

  8. Android Volley完全解析(一),初识Volley的基本用法 转载地址:http://blog.csdn.net/guolin_blog/article/details/17482095

    转载地址:http://blog.csdn.net/guolin_blog/article/details/17482095 1. Volley简介 我们平时在开发Android应用的时候不可避免地都 ...

  9. vue 的 带着参数跳转 转载(http://blog.csdn.net/wy01272454/article/details/77869442?locationNum=7fps=1)

    http://blog.csdn.net/wy01272454/article/details/77869442?locationNum=7&fps=1

最新文章

  1. 阿里巴巴成立云原生技术委员会,云原生升级为阿里技术新战略
  2. redis 怎么关闭写盘_Redis持久化策略
  3. gRPC in ASP.NET Core 3.0 -- 前言
  4. UIBezierPath
  5. LeetCode 665. 非递减数列(双指针)
  6. java excel条件格式_Java 使用条件格式高亮Excel单元格
  7. html5实例-闪烁的星星
  8. 遗传算法详解及代码实现
  9. 解决python安装包无法正常安装问题
  10. 计算机中职基础试题及答案,中职类计算机应用基础试题「附答案」
  11. 业务系统监控解决方案
  12. 【2021版】想要专升本你不得不看的全干货_吐血整理_专升本_计算机文化基础(四)
  13. windows 环境下 0x色彩对应表
  14. 计算机常年开机,电脑长时间开机的危害
  15. vue返回上一页(后退)的几种方法与区别
  16. C语言实验——拍皮球 1184
  17. Mysql将txt文件导入数据库采坑 load data local infile
  18. Nginx 实现 https
  19. 手机浏览器devtools_浏览器DevTools的秘诀:启动,网络和性能
  20. 不动产登记+电子签章全程无纸化网上办,零跑腿!

热门文章

  1. Enterprise Library 2.0 Hands On Lab 翻译(12):安全应用程序块(一)
  2. 怎样查找this的指向
  3. 努力就要晒出来,13周年订阅专栏送图书/T恤晒单集结号!!!
  4. 从代理机制到Spring AOP
  5. django框架-DRF工程之认证功能
  6. grub legacy
  7. 《高性能Linux服务器构建实战》笔记
  8. Python + Selenium 自动发布文章(二):简书
  9. Hibernate配置(2)
  10. 动态验证码制作(RandomCodeImage )