</pre> <span style="font-size:18px;">总结一下,在JavaWeb中针对各种情况处理中文乱码的方法。</span> <p><span style="font-size:24px;"> <span style="font-size:18px;">首先我们看下,一个请求响应的流程</span></span></p><p><span style="font-size:24px;"> <span style="font-size:18px;">浏览器------------------>Servlet容器--------------->显示页面</span></span></p><p><span style="font-size:24px;"> <span style="font-size:18px;">编码 使用容器的URIEncoding转码 解码</span></span></p><p> </p><p><span style="font-size:18px;"> 举例:Tomcat作为Servlet容器,Tomcat的默认的URIEncoding是“iso8859-1“,可在server.xml配置文件中指定编码类型</span></p><p><span style="font-size:24px;"> <span style="font-size:18px;">1.JSP中显示乱码</span></span></p><p><span style="font-size:24px;"> <span style="font-size:18px;">解决方法:</span><span style="font-size:18px;">在JSP中第一行加上</span><span style="font-size:18px;"><%@ page pageEncoding="UTF-8"%></span></span></p><p><span style="font-size:24px;"><span style="font-size:18px;"> 即可解决。</span></span></p><p><span style="font-size:24px;"><span style="font-size:18px;"><span style="font-size:24px;"> <span style="font-size:18px;">2.Servlet中显示乱码</span></span></span></span></p><p><span style="font-size:24px;"><span style="font-size:18px;"><span style="font-size:24px;"> <span style="font-size:18px;">解决方法:在Servlet中加上</span>response.setContentType("text/html;charset=UTF-8");</span></span></span></p><p><span style="font-size:24px;"><span style="font-size:18px;"><span style="font-size:24px;"><span style="font-size:18px;"> 3.Post请求中传中文参数显示乱码</span></span></span></span></p><p><span style="font-size:24px;"><span style="font-size:18px;"><span style="font-size:24px;"><span style="font-size:18px;"><span style="font-size:24px;"> <span style="font-size:18px;">解决方法:接受参数前,加上request.setCharaterEncoding("UTF-8");</span></span></span></span></span></span></p><p><span style="font-size:24px;"><span style="font-size:18px;"><span style="font-size:24px;"><span style="font-size:18px;"><span style="font-size:24px;"><span style="font-size:18px;"><span style="font-size:24px;"> <span style="font-size:18px;">4.Get请求中传中文参数显示乱码</span></span></span></span></span></span></span></span></p><p><span style="font-size:24px;"><span style="font-size:18px;"><span style="font-size:24px;"><span style="font-size:18px;"><span style="font-size:24px;"><span style="font-size:18px;"><span style="font-size:24px;"><span style="font-size:18px;"> 第一种解决方法:程序转码</span></span></span></span></span></span></span></span><span style="font-size:14px"><span style="font-size:24px"><span style="font-size:18px"><span style="font-size:24px;"><span style="font-size:18px;"><span style="font-size:24px;"> </span></span></span></span></span></span></p><pre name="code" class="java"><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>