论坛首页 Java企业应用论坛

tomcat下http get方式提交的汉字乱码问题解决

浏览 5220 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-11-09   最后修改:2011-08-06
通过HTTP GET方式向后台传递中文参数,后台从request..getParameter ()中取值。在tomcat开发环境下,从request中取到的值是乱码,在resin运行环境下,从request中取到的值是正常的(所有编码相关的地方都设置为UTF-8:包括jsp文件编码,response响应编码,CharacterEncodingFilter)

通过下面的方式在tomcat下能取到正常的值,但resin下得到的值是乱码
String name = new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8");

不改代码解决方法:
在tomcat配置文件server.xml中Connector元素下设置
URIEncoding="UTF-8"

或者
useBodyEncodingForURI="true"

注1:是URIEncoding而不是URLEncoding
注2:eclipse-jee-galileo-SR2-win32(3.5)版本下的tomcat插件,修改配置后必须重启eclipse才能起作用,我在这里纠结了很久

参考:tomcat wiki faq Character Encoding Issues
Apache Tomcat Configuration Reference - The HTTP Connector

注:这里提到的Tomcat配置文件设置和jquery 的serialize没有关系,原来写的好像有点文不对题!
jquery serialize的问题可以参考:jquery serialize()方法自动编码后,后台使用前解码处理编辑
   发表时间:2010-11-09  
能不能发表一点有新意的东西哦??
0 请登录后投票
   发表时间:2011-08-05  
Hello,friend~
maybe I am encoutering a similar question, but not between tomcat and resin, they are about IE8 and FF5.

我用jquery的ajax方法用post向jsp传表单数据,表单中的数据通过serialize()得到,通过alert可以看到格式都是%xy%这种格式的,在IE8和FF5中,%xy%是一样的。
但是在tomcat中,通过FF传过来的数据可以直接request.get...得到正常的中文,但是通过IE传过来的只能用你上面的先ISO再utf转换成正常中文,我也在tomcat的conf.xml中加入URIEncoding这个参数,但结果还是那样。

我不知道你有没有遇到这样的问题?或者有什么好方法教教我~~~
thanks in advance~~
0 请登录后投票
   发表时间:2011-08-06   最后修改:2011-08-06
jquery serialize()会自动进行UTF-8编码!
你看看jquery serialize()方法自动编码后,后台使用前解码处理,是否对你有帮组
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics