您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

解决ajax获取页面直接显示乱码的方法

2024/3/31 6:38:00发布11次查看
大家都知道,xmlhttp在通信时采用的是utf编码,而国内很多网页的信息都是采用gbk编码,所以当直接通过ajax去连接网页,并将获取到的信息直接显示的话就会出现乱码的现象,有些时候无法改变服务器端网页的编码(例如获取别的网站的天气预报信息),在这种时候就只能在客户端通过js做编码的工作了.
下面这段js就是用于将服务器端返回的gbk编码字符串转换为utf编码字符串:
function gb2utf8(data){
var glbencode = [];
gb2utf8_data = data;
execscript(gb2utf8_data = midb(gb2utf8_data, 1), vbscript);
var t=escape(gb2utf8_data).replace(/%u/g,).replace(/(.{2})(.{2})/g,%$2%$1).replace(/%([a-z].)%(.{2})/g,@$1$2);
t=t.split(@);
var i=0,j=t.length,k;
while(++i k=t[i].substring(0,4);
if(!glbencode[k]) {
gb2utf8_char = eval(0x+k);
execscript(gb2utf8_char = chr(gb2utf8_char), vbscript);
glbencode[k]=escape(gb2utf8_char).substring(1,6);
}
t[i]=glbencode[k]+t[i].substring(4);
}
gb2utf8_data = gb2utf8_char = null;
return unescape(t.join(%)); }
有了这段代码后,就可以直接对返回的网页内容进行编码了:
var response=gb2utf8(response.responsebody);
经过这样的转码后所获得的页面内容就不会有乱码现象了;
当然,如果服务器端页面采用的是utf-8的编码那就根本不需要进行编码工作了。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product