1 前台到后台
1.1 GET
对于GET请求中url出现中文字符时,尽量要提前用URLEncoder.encode(str,”utf-8”)编码一下;
此时,后台能起到解码作用的只有1中的URIEncoding=“UTF-8”配置,request.setCharacterEncoding(“UTF-8”)只对POST请求有效;
URL中的PathInfo和QueryString字符串的编码和解码由浏览器和应用服务器的配置决定,程序中不能设置
1.2 POST
表单中的参数值对是通过request body发送给服务器,此时浏览器会根据网页中的contentType(“text/html; charset=GBK”)中指定的编码对表单中的数据进行编码,然后再发送给服务器;
在服务器端的程序中我们可通过Request.setCharacterEncoding()设置编码,然后通过request.getParameter获得正确的数据,当然也可以通过web.xml中配置CharacterEncodingFilter来获取;
1.3 web服务器tomcat server.xml——非必要设置
Tomcat使用的编码,也是配置集成时使用的编码
后端tomcat的server.xml中配置URIEncoding=”UTF-8”,此法只对GET请求有效,POST请求还得在request body里面设置
1.4 web项目配置web.xml
web.xml filter中配置CharacterEncodingFilter,并将encoding属性配置为UTF-8
<filter>
<filter-name>CharacterEncodingFilter</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>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
这里需要注意的是,最好把这段代码放在web.xml中开头的位置,因为拦截有顺序,如果放在后面的话容易拦截不到
2 JSP页面
jsp中contentType=”text/html; charset=UTF-8” pageEncoding=”UTF-8”
pageEncoding是jsp当前页面的编码格式
3 后台到前台
jsp中contentType=”text/html; charset=UTF-8” pageEncoding=”UTF-8”
charset是服务器发送到客户端的编码格式
http://www.cnblogs.com/zhh-bky/articles/5110246.html