ajax get提交中文参数乱码
2012-11-22 15:34
323 查看
今天有个同事被jsp提交中文到后台被扰人的乱码问题给困扰了,大家七嘴八舌的看了半天试了各种方法也还找到原因,我也过去凑热闹看了下,同事说起先是用get方式提交,但始终是乱码,但改用post提交用过滤器过滤后就没问题了,但这里又必须用get方式来提交。
我在网上查了用get提交的方式,因为用get提交的话过滤器是不起作用的,参数是跟在url后面进行提交的,我采用了网上说得两种办法进行试验。
在后台采用new String(request.getParameter("***").getBytes("ISO-8859-1"),"UTF-8");进行转码,
在启动的tomcat的server.xml中的Connector元素配置URIEncoding="UTF-8"。
按照网上说得这两种get提交的方式居然都不成功,有点郁闷。
后台仔细查看了框架代码的提交方式,是用的ajax的http的提交方式。
http.open("GET", url, true);
http.onreadystatechange = handleSearchSuggest;
http.send(null);
然后针对这个在网上查了一圈,果然很多人都碰到类似问题,我就采用其中有人说得办法,在传递到后台的含有中文的参数上加上encodeURIComponent(value),然后在后台直接request.getParameter("value");就可以拿到中文了,并不需要再进行转换了。
至于有的人说的用两次encodeURI(encodeURI(value)),然后再java.net.URLDecoder.decode(String str,String codename)这样写因为时间所限还没试验,按网上一些博客的说法也是可行的。
小结,对于get方式提交,对于ajax的get提交方式应特殊对待,不能像普通form的get提交方式那样处理。
参考文献
http://highfly-s.iteye.com/blog/1128657
http://blog.csdn.net/getchance/article/details/7630110
我在网上查了用get提交的方式,因为用get提交的话过滤器是不起作用的,参数是跟在url后面进行提交的,我采用了网上说得两种办法进行试验。
在后台采用new String(request.getParameter("***").getBytes("ISO-8859-1"),"UTF-8");进行转码,
在启动的tomcat的server.xml中的Connector元素配置URIEncoding="UTF-8"。
按照网上说得这两种get提交的方式居然都不成功,有点郁闷。
后台仔细查看了框架代码的提交方式,是用的ajax的http的提交方式。
http.open("GET", url, true);
http.onreadystatechange = handleSearchSuggest;
http.send(null);
然后针对这个在网上查了一圈,果然很多人都碰到类似问题,我就采用其中有人说得办法,在传递到后台的含有中文的参数上加上encodeURIComponent(value),然后在后台直接request.getParameter("value");就可以拿到中文了,并不需要再进行转换了。
至于有的人说的用两次encodeURI(encodeURI(value)),然后再java.net.URLDecoder.decode(String str,String codename)这样写因为时间所限还没试验,按网上一些博客的说法也是可行的。
小结,对于get方式提交,对于ajax的get提交方式应特殊对待,不能像普通form的get提交方式那样处理。
参考文献
http://highfly-s.iteye.com/blog/1128657
http://blog.csdn.net/getchance/article/details/7630110
相关文章推荐
- 解决ajax get方式提交中文参数乱码问题
- ajax get提交中文参数乱码
- ajax GET方式提交,中文参数乱码的问题
- JSP提交中文参数到后台乱码解决
- JSP中FORM的POST方式提交参数中文乱码
- js提交表单中包含中文参数值,request请求参数正常,服务器端接收出现乱码解决思路
- struts2中form提交到action中的中文参数乱码问题解决办法(包括取中文路径)
- url里含有中文参数,已get方式提交到接口,中文编码后有乱码问题的一种解决
- form表单用ge方式提交时ie显示中文参数乱码
- 彻底解决get显示提交时,参数中包含中文时出现乱码的问题
- js代替表单提交带中文的参数出现乱码的解决办法
- struts2表单提交的中文参数后台乱码问题解决
- location.href提交中文参数在action中获取到为乱码
- Tomcat JSP提交参数中文乱码问题解决
- 提交表单乱码问题 action 中文接收的参数乱码
- 表单向Servlet提交参数时的中文乱码问题
- 提交表单乱码问题 action 中文接收的参数乱码
- Struts2 与 js 处理Get方式提交的中文参数乱码问题
- 通过超链接及其提供的参数来实现分页查询功能时出现提交中文后servlet获取的值是??乱码
- tomcat编码格式的设置/如何解决get()方式提交中文参数乱码的问题