中文乱码问题分析

来源:互联网 发布:linux下解压rar文件 编辑:程序博客网 时间:2024/05/17 03:09

在读取文件的时候,大家都常常会遇到中文乱码的问题,接下来我来分析一下乱码产生的来源,以及解决乱码的方法。

正常读取一个文件显示到浏览器上,有三个步骤可能导致乱码,①,浏览器解析的时候出现乱码;②,io读取的时候出现乱码,(这两种情况应该是大家都知道的);③,文件本身的编码格式(如utf-8,ANSI等),第三种是大家最容易忽略的部分了。

下面来说一下这三个阶段如何解决乱码。①,比较简单,向服务器请求数据时添加request.setCharacterEncoding("utf-8");返回给服务器数据时添加response.setCharacterEncoding("utf-8");(这两个是写在servlet里的)。②,io读写文件时,进行InputStreamReader和OutputStreamWriter包装一下即可,具体如下,InputStreamReader isr=new InputStreamReader(new FileInputStream(f),"utf-8")和OutputStreamWriter opsw=new OutputStreamWriter(new FileOutputStream(path),"utf-8")。InputStreamReader和OutputStreamWriter是可以进行编码格式指定的,所以就会很好的解决中文乱码问题。③,这是一个比较逗的问题,小编最开始处理的文件(properties)是在生成一个txt文件,然后改后缀名字的,称为文件1吧,另一个是直接的properties文件(并非通过修改后缀得到的),此文件问文件2。此时对文件1和文件2进行读取(里面内容完全相同),小编发现一个有乱码(文件1),一个没有乱码(文件2),找了半天原因终于发现是文件本身的编码格式不一样导致的。那么如何解决修改后缀名的文件的乱码呢,很简单,将InputStreamReader和OutputStreamWriter的编码格式改为gbk即可,此时文件1正常,文件2乱码。

最终,得出结论,要处理的文件要保证编码格式一致。

鱼和熊掌不可兼得。

1 0
原创粉丝点击