form get提交中文乱码问题

前提:jsp已设置为utf-8,struts2配置为utf-8.

今天碰到个乱码问题,form表单post提交中文没有任何问题,get提交到服务器确实乱码。在网上了解了下,这个应该很多人碰到。

  首先说明下,struts2设置为utf-8的话,相当于response.setCharacterEncoding("UTF-8"),对HTTP请求的body进行编码,但是get请求的数据是直接在URL中,通过配置struts2配置为utf-8或CharacterEncodingFilter拦截器都不会对URL进行转换。

  解决方法:(用的是Tomcat服务器,Jboss等其他web服务器类似)打开tomcat的conf/server.xml,找到下面这行配置:

<Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" />
 

增加属性URIEncoding="UTF-8",效果如下:

<Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" URIEncoding="UTF-8" />
扫描二维码关注公众号,回复: 731388 查看本文章

重启服务器即可。希望对遇到类似问题的同学有所帮助。

猜你喜欢

转载自javafansmagic.iteye.com/blog/1176121