• jquery ajax返回html乱码解决


    情景:

      index.html 使用如下代码访问另外一个html片段

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function rewritedata(id){
        var uu = "/ciweekly/categorydataph/html/ciweeklyph_"+id+".html";
        $.ajax({
        url:uu,
        type:'POST',
        dataType:'text/html' ,
        error:function(){
        },
        success:function(dd){
            $("#ph_dd").html(dd);
        }
        });
    }

    注意:被访问的html为片段文件 ,里面只有一些数据代码 没有头部没有设置编码

    使用ajax在发出请求后,xmlhttp组件在解析返回数据的编码时,是根据 http 响应的头部中是否有页面内容编码声明决定的.

    如果返回的 http 头部中包含 charset 的内容编码声明,则按指定的编码读 responseBody,转换后存在 responseText中.
    如果返回的 http 头部中没有包含 charset 的内容编码声明,则默认其编码为 utf-8,
    所以,如果是gb2312的html页面,在用ajax请求后,读出来肯定是乱的.
    原因是因为 html 页面服务端在输出的时候,是不包含 charset 内容编码声明的,所以ajax就会按utf-8
    来解码,不乱才怪.

    解决办法:在被访问的html片段页面头部放入如下声明:

    1
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">

     

  • 相关阅读:
    cin 文件结束符
    C++ 代码折叠
    QTP/UFT 11.51 发布,支持Windows8和IE10等新特性
    QTP11.5测试手机 UFT Mobile
    Ranorex 4.0.2发布,支持Firefox19
    Selenium的WebDriver API 提交 W3C 标准化
    UFT/QTP11.5新特性
    2012年总结与2013年展望
    《TestComplete自动化测试实践》培训课程
    QTP11.5(HP UFT 11.5)下载地址
  • 原文地址:https://www.cnblogs.com/lixiuran/p/3643297.html
Copyright © 2020-2023  润新知