解决文件编码乱码问题

2017-09-22 20:45:26 jazdbmin1639整理 网页编码乱码 网页编码乱码

如何解决文件乱码问题

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

从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 格式下取得的经纬度数字利用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)报错问题。

WWw.jIzhUba.%cOM

Q2: 文件名乱码文件如何修复

乱码指的是计算机系统不能显示正确的字符,而显示其他无意义的字符或空白,如一堆ASCII Code。所显示出来的文字统称为乱码。乱码是因为所使用的字符的源码在本地计算机上使用了错误的显示字库,或在本地计算机的字库中找不到相应于源码所指代的字符所致。
通俗点讲:
乱码就是你打开王页或邮箱,里面的字不是全中文的,而是一些乱七八糟莫名其妙的无意义的字符组合在一起。主要是计算机的字库出错所致。
1一般出现在网页,用网页上面的查看――编码――简体中文即可解决。
2 出现乱码一般是Windows系统字库的问题,可能是系统错误或不正常关机造成的,也可能是某些软件需要使用操作系统以外的字库造成的。解决办法得看具体的问题,一般情况下的Windows乱码可以通过以下三种方法解决。
第一种方法是下载解决Windows XP SP2乱码补丁 V1.00(华军软件园)
第二种是解决Windows系统错误造成的乱码问题,重启后用F8键激活系统菜单,进入安全模式。等系统检查完毕,硬盘没有响应后再重新正常退出并重新启动计算机,正常进入Windows,字体一般就能自动恢复。这是因为Windows在进入安全模式时会重新索引字库及整理菜单。
第三种解决方法用于修正软件造成的注册表中关于字体部分设置出错的问题。运行“Regedit”启动注册表编辑器。在“HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\fontassoc”键下有 “Associated CharSet”和“Associated DefaultFonts” 两个键。当出现汉字乱码时,这两个键中的内容就可能不正确甚至不完整。它们的正确内容应该是“Associated CharSet”内有“(默认)、ANSI(00)、GB2312(86)、OEM(FF)、SYMBOL(02)”几项串值,键值分别为“(未设置键值)、Yes、Yes、Yes、No”,而“Associated DefaultFonts”内有“(默认)、AssocSystemFont、FontPackegeDecorative、FontPackegeDontCare、FontPackegeModern、FontPackegeRoman、FontPackegeScript、FontPackegeSwiss”几项串值,键值分别为“(未设置键值)、simsun.ttf、宋体、宋体、宋体、宋体、宋体、宋体”。重新启动系统后汉字就应该显示正确了。建议您在修改前先备份注册表,以防修改错误使系统出现问题。

wwW.jIZHuBA@.coM

小提示:内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。

网页编码乱码 推荐文章:
推荐不满意?点这里  ››  

网页编码乱码