日期:2014-05-16  浏览次数:20622 次

Ajax中文参数传递处理
在项目中碰见的一个问题,
页面使用的纯JS,一个表单,点击提交后出发ajax的请求函数,
在传递参数的时候碰见一个问题,没有插入数据库,然后我在后台输出,
结构是一些我看不懂的文字了,呵呵, 不是乱码,
google一下,
解决办法如下~:
在JS处理url的时候:
var url = "recommend/updateRecommendCategory.do?recommendCategory.id="+rc_id+"&recommendCategory.name="+rc_name+"&recommendCategory.description="+rc_desc;
                url=encodeURI(url);
                url=encodeURI(url);

这里的encodeURI要两次啊, 我也不知道为什么要两次,但是网上的这么说了,我也没有深入的研究了,一次到底可不可以,我也没有看过!
然后java里面接收参数也要相应的编码一次:
name = java.net.URLDecoder.decode(recommendCategory.getName(),"UTF-8")

然后在Action里面输出! 呵呵
汉字出来了!
1 楼 yn5411 2010-04-10  
我的两边都用的是utf8,ajax时没有你说的这种问题。
2 楼 xiaoyiz 2010-04-10  
或者用escape也可以
3 楼 lucky16 2010-04-10  
yn5411 写道
我的两边都用的是utf8,ajax时没有你说的这种问题。

我的两边也是UTF-8,但是出现了这个问题了!呵呵
4 楼 風一樣的男子 2010-04-11  
我遇到过两边都UTF-8
URL 也 encodeURI 了两次
可在 action 里接受到的还是乱码
5 楼 nail2008 2010-04-11  
容器的 URIencoding 设置了没有?