总结一下,在JavaWeb中针对各种情况处理中文乱码的方法。
首先我们看下,一个请求响应的流程
浏览器------------------>Servlet容器--------------->显示页面
编码 使用容器的URIEncoding转码 解码
举例:Tomcat作为Servlet容器,Tomcat的默认的URIEncoding是“iso8859-1“,可在server.xml配置文件中指定编码类型
1.JSP中显示乱码
解决方法:在JSP中第一行加上<%@ page pageEncoding="UTF-8"%>
即可解决。
2.Servlet中显示乱码
解决方法:在Servlet中加上response.setContentType("text/html;charset=UTF-8");
3.Post请求中传中文参数显示乱码
解决方法:接受参数前,加上request.setCharaterEncoding("UTF-8");
4.Get请求中传中文参数显示乱码
第一种解决方法:程序转码
- <span style="font-size:14px;">String value = new String(pValue.getBytes("iso-8859-1"), "UTF-8");</span>
第二种解决办法
修改tomcat,conf文件夹下的server.xml文件。将其中的
- <span style="font-size:14px;"> <Connector port="8080" protocol="HTTP/1.1"
- connectionTimeout="20000"
- redirectPort="8443"/> </span>
修改为:
- <span style="font-size:14px;"> <Connector port="8080" protocol="HTTP/1.1"
- connectionTimeout="20000"
- redirectPort="8443"
- URIEncoding="UTF-8"/> </span>