`

jquery ajax提交中文乱码的一点小经验

阅读更多
写道

 

我用的是jquery 1.3.2版本,在做ajax提交的时候中文显示乱码,后来我在网上查找了很多资料,哪怕是jquery默认的编码。。该版本用ajax提交的时候默认是utf-8的,我的jsp 后台action都是用 utf-8编码的,可是还是乱码。。

最后解决方案如下:

 

写道
$.ajax({
type:"POST",
url:"RoiTarget.do",
data:"roiTgId="+$(this).attr("tgid")+"&roiTgName="+encodeURI(encodeURI($(this).val())),
success:function(){
}
});

 encodeURI(encodeURI($(this).val()),这个方法一定要用两遍。。为啥我也不知道,先解决问题吧

在java中获取参数。。

String roiTgName=request.getParameter("roiTgName");

URLDecoder.decode(roiTgName, "UTF-8");

 

 

先编码再解码,幸好JS中两次encodeURI之后是utf-8方式的字符。。嘿嘿

 

1
1
分享到:
评论
2 楼 woxiangbo 2010-04-07  
魔力猫咪 写道
应该是你提交data写错了。data:"roiTgId="+$(this).attr("tgid")+"&roiTgName="+encodeURI(encodeURI($(this).val()))
很明显是当成了get提交的参数处理了。建议你们写成json的方式看看是否还有问题。比如
{roiTgid:$(this).attr("tgid"), roiTgName:$(this).val()}
看看。
服务器端建议使用一个过滤器进行编码处理。

我用了JSON各式的,还是需要用encodeURI编码成 UTF-8的,然后再服务端解码
{roiTgid:$(this).attr("tgid"), encodeURI(roiTgName:$(this).val())}

URLDecoder.decode(roiName,"utf-8")
1 楼 魔力猫咪 2010-03-30  
应该是你提交data写错了。data:"roiTgId="+$(this).attr("tgid")+"&roiTgName="+encodeURI(encodeURI($(this).val()))
很明显是当成了get提交的参数处理了。建议你们写成json的方式看看是否还有问题。比如
{roiTgid:$(this).attr("tgid"), roiTgName:$(this).val()}
看看。
服务器端建议使用一个过滤器进行编码处理。

相关推荐

Global site tag (gtag.js) - Google Analytics