zoukankan      html  css  js  c++  java
  • 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">

     

  • 相关阅读:
    团队项目的NABC(截图软件)
    《梦断代码》读后感_3
    《梦断代码》读后感_2
    毕设今日总结(二)
    毕业设计今日总结(一)
    QT中文乱码解决方法
    课堂练习——最大联通之数组
    《浪潮之巅》读书笔记3
    《浪潮之巅》读书笔记2
    《浪潮之巅》读书笔记1
  • 原文地址:https://www.cnblogs.com/lixiuran/p/3643297.html
Copyright © 2011-2022 走看看