在java中怎样处理中文乱码的问题?(有几种处理方式)

Python016

在java中怎样处理中文乱码的问题?(有几种处理方式),第1张

读取文件的时候如果是用的read方法(字节流),碰到中文输出就是乱码,然后存储的时候设置下编码为GBK或者是UTF-8形式即可,可以有效的解决乱码问题。

可以通过BufferedReader 流的形式进行流缓存,之后通过readLine方法获取到缓存的内容。

BufferedReader bre = null

try {

String file = "D:/test/test.txt"

bre = new BufferedReader(new FileReader(file))//此时获取到的bre就是整个文件的缓存流

while ((str = bre.readLine())!= null) // 判断最后一行不存在,为空结束循环

{

System.out.println(str)//原样输出读到的内容

};

备注: 流用完之后必须close掉,如上面的就应该是:bre.close(),否则bre流会一直存在,直到程序运行结束。

可以通过“FileOutputStream”创建文件实例,之后过“OutputStreamWriter”流的形式进行存储,举例:

OutputStreamWriter pw = null//定义一个流

pw = new OutputStreamWriter(new FileOutputStream(“D:/test.txt”),"GBK")//确认流的输出文件和编码格式,此过程创建了“test.txt”实例

pw.write("我是要写入到记事本文件的内容")//将要写入文件的内容,可以多次write

pw.close()//关闭流

备注:文件流用完之后必须及时通过close方法关闭,否则会一直处于打开状态,直至程序停止,增加系统负担。

因为你遗漏了重要的一步。正确的方法如下:

 if(encoding!=null){

    //设置request字符编码

    request.setCharacterEncoding(encoding)

    //设置response字符编码

    response.setContentType("text/htmlcharset="+encoding)

    response.setCharacterEncoding(encoding)

}

//传递给下一个过滤器

chain.doFilter(request, response)