首页 > 代码库 > 【问题分析】乱码问题的解决方案

【问题分析】乱码问题的解决方案

1.将tomcat的配置文件server.xml中改为URIEncoding="UTF-8"
如:
 <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>

2.查看web.xml中过滤器的编码,以及<filter-mapping>是否紧跟<filter>后,这样才起作用。

<filter>
 <filter-name>SetCharacterEncoding</filter-name>
 <filter-class>com.example.gmis.common.SetCharacterEncodingFilter</filter-class>
 <init-param>
  <param-name>encoding</param-name>
  <param-value>UTF-8</param-value>
 </init-param>
 <init-param>
  <param-name>ignore</param-name>
  <param-value>false</param-value>
 </init-param>
</filter>
<filter-mapping>
 <filter-name>SetCharacterEncoding</filter-name>
 <url-pattern>/*</url-pattern>
</filter-mapping>
  
3.页面form表单提交
如果不写method="post",默认就是以get方式提交,get方式提交会出现乱码

4.get方式提交时:
   前台拼接url如下所示:
        url=url+‘&person.workUnit=‘+encodeURI(encodeURI(workUnit));//注意俩个encodeURI()
   后台解析如下所示:
        workUnit = URLDecoder.decode(workUnit, "utf-8");
这样才可以跨平台解决中文乱码问题。getBytes的方式转码不是正确的方式,Tomcat上可能有效,但在其它平台未必有效。


本文出自 “HAPPY_CANDY” 博客,谢绝转载!

【问题分析】乱码问题的解决方案