• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    ajax中文乱码问题解决方案
    ajax中文乱码问题在中文中经常会出现这种问题,其实只要稍加注意就不会出现ajax中文乱码这回事情了,注意前后台编码一致.你用的是中文.而ajax传输数据的时候用的是utf-8 ,还有对ajax get方法时最好escape 或urlcode,
    复制代码 代码如下:

    %@ page contenttype="text/html;charset=gb2312%>

    如果是用servlet就加
    复制代码 代码如下:

    response.setcontenttype("text/html;charset=gb2312");
    request.setcharacterencoding("gb2312");

    还有一个更好的方法就是在加一个filter
    在其中加入
    复制代码 代码如下:

    response.setcontenttype("text/html;charset=gb2312");
    request.setcharacterencoding("gb2312");

    一切都解决了
    再说一下从客户端上传数据,就必须在服务端进行编码转换
    复制代码 代码如下:

    string param = request.getparamter("param");
    param = new string(param.getbytes("iso-8859-1"),"gb2312");

    现在就都是中文的了。
    注意前后台编码一致.你用的是中文.而ajax传输数据的时候用的是utf-8
    复制代码 代码如下:

    script>
    var oxmlhttp = new activexobject( "microsoft.xmlhttp ");
    oxmlhttp.open( "get ", "http://dotnet.aspx.cc/content.aspx ", false);
    oxmlhttp.send()
    var ostream = new activexobject( "adodb.stream ");
    if(ostream == null)
    alert( "您的机器不支持adodb.stream. ")
    else
    {
    ostream.type=1;
    ostream.mode=3;
    ostream.open() ;
    ostream.write(oxmlhttp.responsebody);
    ostream.position= 0;
    ostream.type= 2;
    ostream.charset= "gb2312 ";
    var result= ostream.readtext();
    ostream.close();
    ostream = null;
    alert( result);
    }
    /script>

    客户端文件的编码设置为gb2312,如下面代码所示:
    html代码
    复制代码 代码如下:

    meta http-equiv="content-type" content="text/html; charset=gb2312" />

    在发送的url地址中的查询字符串或者是使用post方式发送的请求内容不要使用escape函数进行编码,切记!
    在服务器端的jsp教程文件也设置为gb2312编码格式,如下面代码所示:
    jsp 代码
    或者设置response的头,如下面代码所示:
    复制代码 代码如下:

    response.setheader("content-type","text/html; charset=gb2312");

    两者原理是一样的。
    最着关键的是在获取参数时应该对获取字符串进行重新编码,如下面代码所示:
    复制代码 代码如下:

    string username = new string(request.getparameter("username").getbytes("iso8859_1"),"gb2312");

    其中,username为接收的参数。
    直接使用out.print(username);就可以将中文返回给客户端,在客户端直接使用xmlhttp.responsetext属性就可以直接使用返回的中文了!
    附件中我测试用的一个小例子,在tomcat6.0和resin2.1.8中通过测试!

    其实,还有一个一劳永逸的解决方案,就是添加一个过滤器。
    补充一下提交方法为get时时在服务器里写的时这句代码
    复制代码 代码如下:

    string username = new string(request.getparameter("username").getbytes("iso8859_1"),"gb2312");

    为post时应该时这样吧
    复制代码 代码如下:

    string username = new string(request.getparameter("username").getbytes("iso8859_1"),"utf-8");
    您可能感兴趣的文章:
    • ajax请求乱码的解决方法(中文乱码)
    • jquery.ajax的url中传递中文乱码问题的解决方法
    • jsp中 ajax的get请求的中文乱码问题的解决方法
    • 解决ajax+php中文乱码的方法详解
    • JQuery AJAX 中文乱码问题解决
    • jquery的ajax()函数传值中文乱码解决方法介绍
    • JQuery中使用ajax传输超大数据的解决方法
    • AJAX在GB2312的中文编码传输 AJAX特殊字符编码正确方法
    • Ajax传输中文乱码问题的解决办法
    上一篇:AJAX避免用户重复提交请求实现方案
    下一篇:jquery ajax实现批量删除具体思路及代码
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    ajax中文乱码问题解决方案 ajax,中文,乱码,问题,解决方案,