etgyd

1)源文件全部用UTF-8编码,页面全部指定UTF-8编码
2)过滤器
<filter>
    <filter-name>encodingFilter</filter-name>
    <filter-class>
            org.springframework.web.filter.CharacterEncodingFilter
        </filter-class>
    <init-param>
      <param-name>encoding</param-name>
      <param-value>utf-8</param-value>
    </init-param>
    <init-param>
      <param-name>forceEncoding</param-name>
      <param-value>true</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <url-pattern>*.do</url-pattern>
  </filter-mapping>

这个过滤器其实很简单,就是2句话:
request.setCharacterEncoding(this.encoding);
response.setCharacterEncoding(this.encoding);

3)server.xml中使用
 <Connector port="8809" protocol="AJP/1.3" redirectPort="8443" URIEncoding=\'UTF-8\' useBodyEncodingForURI="true"/>
useBodyEncodingForURI 就会使用过滤器处理url中的%E 开头的unicode编码。他会覆盖掉URIEncoding的设置。


4)如果还有乱码情况,说明tomcat的默认的运行环境编码和UTF-8不一致,需要制定。(这里如果不是utf-8,则第三步其实是没有作用的)
###bin/catalina.sh中设置 tocmat 运行时编码 (用户中文乱码处理)
JAVA_OPTS="-Dfile.encoding=UTF-8 $JAVA_OPTS"

分类:

技术点:

相关文章: