html ajax中文乱码问题,ajax请求后返回中文乱码问题

前两天工作中,要提取网络上服务器里一个text文档,但是在使用ajax请求后,返回的结果却是一堆乱码,根本无法解决,其布局可如下示例:

c451c7fa37bd249d66e7df00571a9690.png

也就是通过ajax.html请求ajax.txt文件,因为txt文件在编辑器外面创建,使其编码集非utf-8,则请求后会产生乱码,结果如下:

8ceab7d4ea36955f28f946aa37f92746.png

在通过网上看了无数帖子,看了有通过修改ajax请求时request的编码集,有说通过修改response时的编码级,但最后试完了,下面一个函数可以直接轻松解决:

function loadPage(url){

var xh=window.Event?new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHTTP")

xh.open("GET",url,true)

if(window.Event)

xh.overrideMimeType("text/xml;charset=gb2312")

xh.onreadystatechange=function(){

if(xh.readyState!=4)

return

var v

v=window.Event?xh.responseText:window.gb2utf8(xh.responseBody)

alert(v)

}

window.gb2utf8=function(data){

var glbEncode=[],t,i,j,len

gb2utf8_data=data

execScript("gb2utf8_data = MidB(gb2utf8_data, 1)+' '", "vbscript")

t=escape(gb2utf8_data).replace(/%u/g,"").replace(/(.{2})(.{2})/g,"%$2%$1").replace(/%([A-Z].)%(.{2})/g,"@$1$2")

t=t.split("@")

i=0

len=t.length

while(++i

j=t[i].substring(0,4)

if(!glbEncode[j]) {

gb2utf8_char = eval("0x"+j)

execScript("gb2utf8_char=Chr(gb2utf8_char)","vbscript")

glbEncode[j]=escape(gb2utf8_char).substring(1,6)

}

t[i]=glbEncode[j]+t[i].substring(4)

}

gb2utf8_data=gb2utf8_char=null

return unescape(t.join("%")).slice(0,-1)

}

xh.send(null)

}

loadPage("ajax.txt");

只需要调用loadPage函数,传入你需要请求的地址,而返回值则会通过alert(v)打印出来。结果如下:

075c3e92f85244f2a89fb9454d0e0468.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值