ajax获取页面显示乱码解决方法
作者:bea
大家都知道,xmlhttp在通信时采用的是utf编码,而国内很多网页的信息都是采用gbk编码,所以当直接通过ajax去连接网页,并将获取到的信息直接显示的话就会出现乱码的现象,有些时候无法改变服务器端网页的编码(例如获取别的网站的天气预报信息),在这种时候就只能在客户端通过js做编码的工作了,下面这段js就是用于将服务器端返回的gbk编码字符串转换为utf编码字符串: functiongb2utf8(data){ varglbEncode=[]; gb2
大家都知道,xmlhttp在通信时采用的是utf编码,而国内很多网页的信息都是采用gbk编码,所以当直接通过ajax去连接网页,并将获取到的信息直接显示的话就会出现乱码的现象,有些时候无法改变服务器端网页的编码(例如获取别的网站的天气预报信息),在这种时候就只能在客户端通过js做编码的工作了,下面这段js就是用于将服务器端返回的gbk编码字符串转换为utf编码字符串:
functiongb2utf8(data){
varglbEncode=[];
gb2utf8_data=data;
execScript("gb2utf8_data=MidB(gb2utf8_data,1)","VBScript");
vart=escape(gb2utf8_data).replace(/%u/g,"").replace(/(.{2})(.{2})/g,"%$2%$1").replace(/%([A-Z].)%(.{2})/g,"@$1$2");
t=t.split("@");
vari=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;
returnunescape(t.join("%")); }
functiongb2utf8(data){
varglbEncode=[];
gb2utf8_data=data;
execScript("gb2utf8_data=MidB(gb2utf8_data,1)","VBScript");
vart=escape(gb2utf8_data).replace(/%u/g,"").replace(/(.{2})(.{2})/g,"%$2%$1").replace(/%([A-Z].)%(.{2})/g,"@$1$2");
t=t.split("@");
vari=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;
returnunescape(t.join("%")); }
这段代码也是从网上搜到的,具体是谁写的不清楚,所以在此未标明作者,如作者看到还请见谅。
有了这段代码后,就可以直接对返回的网页内容进行编码了:
var response=gb2utf8(response.responseBody);
经过这样的转码后所获得的页面内容就不会有乱码现象了;
当然,如果服务器端页面采用的是utf-8的编码那就根本不需要进行编码工作了。
有用 | 无用猜你喜欢
您可能感兴趣的文章:
- Javascript实现百分比进度条加载flash
- javascript字符串替换replace的使用
- Jquery插件lazyload的使用和参数说明
- 分享一个ajax对象所有项目用这个就够了
- Javascript实现第二代身份证号码的验证
- 实现兼容IE和Firefox的Javascript方法innerText
- 强大的Jquery构造器$的实现方法
- Jquery实现普通按钮button回车事件
- JS鼠标滑过图片图片切换效果
- JS实现鼠标滑过显示其下拉列表
- this关键字在Javascript中实例讲解
- 改善Jquery代码性能的一些技巧
- 使用Javascript函数验证表单总结
- 使用Javascript如何获取网页地址和参数
- Javascript中数据的类型是如何转换的
- Javascript内置对象arguments
- 使用javascript动态创建style节点
- javascript匿名函数使用详解
- ajax应该如何合理应用