总结几种方式,都使用的话能解决大多数乱码的状况html
1.全部页面使用java
<%@page language="java" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%>
2.服务器添加过滤器web
<!-- 编码过滤器 --> <filter> <filter-name>characterEncoding</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>characterEncoding</filter-name> <url-pattern>*.action</url-pattern> </filter-mapping>
这是为了解决post表单中的中文能顺利提交到后台spring
3.GET请求中文乱码,修改tomcat中的server.xml配置文件tomcat
tomacat对GET和POST请求处理方式是不一样的,要处理针对GET请求的编码问题,则须要改tomcat的server.xml配置文件,以下:服务器
把这个app
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
修改为eclipse
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" useBodyEncodingForURI="true"/>
或者post
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" uRIEncoding="utf-8"/>
最关键的点在这里:若是你是更改的tomcat安装目录的server.xml配置文件,那么在用eclipse运行项目时会发现配置没起做用,实际上是由于eclipse在运行项目时是用的eclipse中配置的tomcat,那么问题就好解决了,打开eclipse中的tomcat配置文件。测试
更多的能够参考 http://blog.csdn.net/xuechongyang/article/details/8283924
如下是我的备注,未测试
对于AJAX中文传参能够这样
get
js端
var url = 'policy.do?word=encodeURI(encodeURI(‘商品'))'
var url = 'policy.do?word=escape(‘商品')'
服务器端
String word = request.getParameter("word");
word = java.net.URLDecoder.decode(word,"UTF-8");
post
request.setCharacterEncoding("UTF-8"); String name = request.getParameter("name");