现在的位置: 首页 > web前端 > 正文

怎样解决ajax获取页面直接显示乱码

2020年05月20日 web前端 ⁄ 共 1054字 ⁄ 字号 评论关闭

  大家都知道,xmlhttp在通信时采用的是utf编码,而国内很多网页的信息都是采用gbk编码,所以当直接通过ajax去连接网页,并将获取到的信息直接显示的话就会出现乱码的现象,有些时候无法改变服务器端网页的编码(例如获取别的网站的天气预报信息),在这种时候就只能在客户端通过js做编码的工作了。下面学步园小编来讲解下怎样解决ajax获取页面直接显示乱码?

  怎样解决ajax获取页面直接显示乱码

  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("%")); }

  怎样解决ajax获取页面直接显示乱码

  这段代码也是从网上搜到的,具体是谁写的不清楚,所以在此未标明作者,如作者看到还请见谅。

  有了这段代码后,就可以直接对返回的网页内容进行编码了:

  varresponse=gb2utf8(response.responseBody);

  经过这样的转码后所获得的页面内容就不会有乱码现象了;

  当然,如果服务器端页面采用的是utf-8的编码那就根本不需要进行编码工作了。

  以上就是关于“怎样解决ajax获取页面直接显示乱码”的内容,希望对大家有用。更多资讯请关注学步园。学步园,您学习IT技术的优质平台!

抱歉!评论已关闭.