加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

可恶的乱码!ajax也乱码!

发布时间:2020-12-15 20:56:37 所属栏目:百科 来源:网络整理
导读:好奇怪工作这么长时间,居然是在自己的练手小项目上发现了这个问题。 ajax的默认编码是utf-8! 无论是xmlhttp返回的数据 还是post提交的数据都是以utf-8 编码形式的数据 中午我还苦恼了一阵 为什么表单提交的数据就不乱码,用ajax提交的就乱码呢??? 我本身

好奇怪工作这么长时间,居然是在自己的练手小项目上发现了这个问题。 ajax的默认编码是utf-8! 无论是xmlhttp返回的数据 还是post提交的数据都是以utf-8 编码形式的数据 中午我还苦恼了一阵 为什么表单提交的数据就不乱码,用ajax提交的就乱码呢??? 我本身项目是gbk编码的,而且使用了全局过滤器来规避编码形式 都是gbk的。 就因为ajax post过去的数据是UTF-8的,而项目是GBK的 所以会产生乱码。 而前台返回的数据没有乱码是因为 我当时提前在servlet 中增加了

<!-- lang: java -->
resp.setContentType("text/html;charset=gbk");

所以就算是ajax返回的数据是utf-8,被哥哥我这么一转码 也不会乱码了。 但是request.getParameter 得到的数据还是会乱码 解决方法 是需要前后台同时协作完成的! 前台js:

<!-- lang: 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:

<!-- lang: java -->
userName = URLDecoder.decode(userName,"UTF-8");

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读