为了账号安全,请及时绑定邮箱和手机立即绑定

怎么解决读取txt文件读取时中文乱码问题?

怎么解决读取txt文件读取时中文乱码问题?

PHP
红糖糍粑 2019-04-03 11:07:53
怎么解决读取txt文件读取时中文乱码问题
查看完整描述

4 回答

?
猛跑小猪

TA贡献1858条经验 获得超8个赞

如果是属于汉字显示出现的问题,你仔细检查一下是否有字符编码设置相关选项?如果有的话,你把字符编码格式设置成:GB-2312(简体),再试一试看看。

查看完整回答
反对 回复 2019-04-09
?
拉丁的传说

TA贡献1789条经验 获得超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 格式下取得的经纬度数字利用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)报错问题。


查看完整回答
反对 回复 2019-04-09
  • 4 回答
  • 0 关注
  • 2827 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信