javaweb项目中中文乱码

来源:互联网 发布:淘宝被投诉低价竞争 编辑:程序博客网 时间:2024/05/17 12:53
</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>