要想完全解决乱码问题其实很简单
如果传值方式以GET/POST方式发送,那么需要以下几步
1:JSP/HTML页面中加入以下内容
<%@page contentType="text/html" pageEncoding="UTF-8"%>
或者
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
2:修改Tomcat的配置文件 路径 tomcat\conf\server.xml
<Connector URIEncoding="UTF-8" ....../>
如果是Tomcat 6.0 以上的版本,可以不需要第3步了
Tomcat 5.5 是需要的
3:配置过滤器
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>
这样配置以后,GET/POST方式都不会出现乱码了
对于 <a href="/xxx?id=中文">
这种情况其实也是可以传中文的,但是只做上面几步还不够
那么这个时候需要在服务器输出到页面的时候需要编码一下
java.net.URLEncoder.encode("中文", "UTF-8");
这样链接就会是
<a href="/xxx?id=%A6%9F%8E">
如果传值方式以GET/POST方式发送,那么需要以下几步
1:JSP/HTML页面中加入以下内容
<%@page contentType="text/html" pageEncoding="UTF-8"%>
或者
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
2:修改Tomcat的配置文件 路径 tomcat\conf\server.xml
<Connector URIEncoding="UTF-8" ....../>
如果是Tomcat 6.0 以上的版本,可以不需要第3步了
Tomcat 5.5 是需要的
3:配置过滤器
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>
这样配置以后,GET/POST方式都不会出现乱码了
对于 <a href="/xxx?id=中文">
这种情况其实也是可以传中文的,但是只做上面几步还不够
那么这个时候需要在服务器输出到页面的时候需要编码一下
java.net.URLEncoder.encode("中文", "UTF-8");
这样链接就会是
<a href="/xxx?id=%A6%9F%8E">