码迷,mamicode.com
首页 > 其他好文 > 详细

处理中文乱码

时间:2016-04-14 15:58:33      阅读:101      评论:0      收藏:0      [点我收藏+]

标签:

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

 

处理中文乱码

标签:

原文地址:http://www.cnblogs.com/nathan909/p/5391174.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!