解决乱码问题最好全程使用 utf-8 编码,具体需要设置的点包括:
1、页面内容使用 utf-8 格式保存,在页面中加入 <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> 和 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
2、服务器端的 server.xml 中设定 useBodyEncodingForURI = true,位置如下:
- <Connector port="8080" protocol="HTTP/1.1"
- connectionTimeout="20000"
- redirectPort="8443" useBodyEncodingForURI="true"/>
3、使用过滤器,过滤器设定编码为 utf-8
对此Spring已经提供了现成的过滤器可供配置,具体做法是在web.xml中加入如下片断:
- <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>/*</url-pattern>
- </filter-mapping>