ajax部分乱码,可恶的乱码!ajax也乱码!
好奇怪工作这么长时间,居然是在自己的练手小项目上发现了这个问题。 ajax的默认编码是utf-8! 无论是xmlhttp返回的数据 还是post提交的数据都是以utf-8 编码形式的数据 中午我还苦恼了一阵 为什么表单提交的数据就不乱码,用ajax提交的就乱码呢??? 我本身项目是gbk编码的,而且使用了全局过滤器来规避编码形式 都是gbk的。 就因为ajax post过去的数据是UTF-8的,而项目是GBK的 所以会产生乱码。 而前台返回的数据没有乱码是因为 我当时提前在servlet 中增加了
resp.setContentType("text/html;charset=gbk");
所以就算是ajax返回的数据是utf-8,被哥哥我这么一转码 也不会乱码了。 但是request.getParameter 得到的数据还是会乱码 解决方法 是需要前后台同时协作完成的! 前台js:
$.post(check.action,{username:encodeURI($(#username).val())},function (data,textStatus){
var flag = data.flag;
var msg = data.msg;
switch (flag){
case 0:
$(#username +p).find(small).css(color,red);
$(#username + p).find(small).text(msg);
break;
case 1:
$(#username + p).find(small).text(msg);
$(#username +p).find(small).css(color,green);
break;
}
},json);
利用encodeURI将数据进行encode
后台java:
userName = URLDecoder.decode(userName,"UTF-8");
总结
以上是编程之家为你收集整理的可恶的乱码!ajax也乱码!全部内容,希望文章能够帮你解决可恶的乱码!ajax也乱码!所遇到的程序开发问题。
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
好奇怪工作这么长时间,居然是在自己的练手小项目上发现了这个问题。 ajax的默认编码是utf-8! 无论是xmlhttp返回的数据 还是post提交的数据都是以utf-8 编码形式的数据 中午我还苦恼了一阵 为什么表单提交的数据就不乱码,用ajax提交的就乱码呢??? 我本身项目是gbk编码的,而且使用了全局过滤器来规避编码形式 都是gbk的。 就因为ajax post过去的数据是UTF-8的,而项目是GBK的 所以会产生乱码。 而前台返回的数据没有乱码是因为 我当时提前在servlet 中增加了 resp.setContentType("text/html;charset=gbk"); 所以就算是ajax返回的数据是utf-8,被哥哥我这么一转码 也不会乱码了。 但是request.getParameter 得到的数据还是会乱码 解决方法 是需要前后台同时协作完成的! 前台js: $.post(check.action,{username:encodeURI($(#username).val())},function (data,textStatus){ var flag = data.flag; var msg = data.msg; switch (flag){ case 0: $(#username +p).find(small).css(color,red); $(#username + p).find(small).text(msg); break; case 1: $(#username + p).find(small).text(msg); $(#username +p).find(small).css(color,green); break; } },json); 利用encodeURI将数据进行encode 后台java: userName = URLDecoder.decode(userName,"UTF-8"); 总结 以上是编程之家为你收集整理的可恶的乱码!ajax也乱码!全部内容,希望文章能够帮你解决可恶的乱码!ajax也乱码!所遇到的程序开发问题。 如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。