JS 乱码转换

ContractedBlock.gif ExpandedBlockStart.gif JS-Code
 
   
1 function gb2utf8(data){
2 var glbEncode = [];
3 gb2utf8_data = data;
4 execScript( " gb2utf8_data = MidB(gb2utf8_data, 1) " , " VBScript " );
5 var t = escape(gb2utf8_data)
        .replace( / %u / g, "" )
        .replace( / (.{2})(.{2}) / g, " %$2%$1 " )
        .replace( / %([A-Z].)%(.{2}) / g, " @$1$2 " );
6 t = t.split( " @ " );
7 var i = 0 ,j = t.length,k;
8 while ( ++ i < j) {
9 k = t[i].substring( 0 , 4 );
10 if ( ! glbEncode[k]) {
11 gb2utf8_char = eval( " 0x " + k);
12 execScript( " gb2utf8_char = Chr(gb2utf8_char) " , " VBScript " );
13 glbEncode[k] = escape(gb2utf8_char).substring( 1 , 6 );
14 }
15 t[i] = glbEncode[k] + t[i].substring( 4 );
16 }
17 gb2utf8_data = gb2utf8_char = null ;
18 return unescape(t.join( " % " ));
19 }

 

应用场合:html页面ajax请求asp页面出现乱码时,或者ajax加载页面出现乱码

在XmlHttpRequest.onreadystatechange中获取responseBody而不是responseXml,这样就可以对其进行转换

示例如下:

 

ContractedBlock.gif ExpandedBlockStart.gif JS-Code
 
   
1 function AjaxGet(url, title) {
2 Load( 0 );
3 var xmlhttp = createXMLHttps();
4 if (AjaxSend != "" )
5 var AjaxCat = " POST " ;
6 else
7 AjaxCat = " GET " ;
8 xmlhttp.open(AjaxCat, url, true );
9 xmlhttp.setRequestHeader( " Content-Type " , " application/x-www-form-urlencoded;charset=gbk " );
10 xmlhttp.onreadystatechange = function () {
11 if (xmlhttp.readyState == 4 && xmlhttp.status == 200 ) {
12 var ajaxHtml = gb2utf8(xmlhttp.responseBody);
13 OWin(title, ajaxHtml, 1 );
14 AjaxSend = "" ;
15 Load( 1 );
16 }
17 };
18 xmlhttp.send(AjaxSend);
19 }

 

转载于:https://www.cnblogs.com/myssh/archive/2010/03/25/1695337.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值