用js来解决ajax读取页面乱码 |
本文标签:ajax,页面乱码 例子: rsajax.js: 复制代码 代码如下: var http_request = false; function makePOSTRequest(url, parameters) { http_request = false; if (window.XMLHttpRequest) { http_request = new XMLHttpRequest(); if (http_request.overrideMimeType) { http_request.overrideMimeType(text/html); } } else if (window.ActiveXObject) { try { http_request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { http_request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } if (!http_request) { alert(Cannot create XMLHTTP instance); return false; } http_request.onreadystatechange = alertContents; http_request.open(POST, url, true); http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); //http_request.setRequestHeader("Content-Type","application/text/html; charset:utf-8"); http_request.setRequestHeader("Content-length", parameters.length); http_request.setRequestHeader("Connection", "close"); if(!Sys.ie){ http_request.overrideMimeType("text/html;charset=gb2312"); } http_request.send(parameters); } function alertContents() { if (http_request.readyState == 4) { if (http_request.status == 200) { if(Sys.ie){ result = http_request.responseBody; } else { result = http_request.responseText; } //newresult=result.replace(/[^\u0000-\u00FF]/g,function($0){return escape($0).replace(/(%u)(\w{4})/gi,"$2;")}); //newreslt=unescape(result.replace(//g,%u).replace(/;/g,)); //utf-8和汉字互转,不需要了 document.getElementById(waiting).innerHTML = ; if(Sys.ie){ document.getElementById(showresults).innerHTML =gb2utf8(result); } else{ document.getElementById(showresults).innerHTML =result; } } else { alert(There was a problem with the request.); } }else{ document.getElementById(waiting).innerHTML = <img src="loading.gif">;} } function get(obj) { //var poststr = "accounts=" + encodeURI( document.getElementById("accounts").value ); makePOSTRequest(y.htm, ); } //ie引入一个杂交函数,nndx 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<j) { 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 Sys = {}; var ua = navigator.userAgent.toLowerCase(); if (window.ActiveXObject) Sys.ie = ua.match(/msie ([\d.]+)/)[1] else if (document.getBoxObjectFor) Sys.firefox = ua.match(/firefox\/([\d.]+)/)[1] else if (window.MessageEvent && !document.getBoxObjectFor) Sys.chrome = ua.match(/chrome\/([\d.]+)/)[1] else if (window.opera) Sys.opera = ua.match(/opera.([\d.]+)/)[1] else if (window.openDatabase) Sys.safari = ua.match(/version\/([\d.]+)/)[1]; index.php 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=gb2312" /> <title></title> <script type="text/javascript" language="javascript" src="rsajax.js"></script> <HEAD> </head> <body> <div align="center"> <input onclick="javascript:get(document.getElementById(acctform));" name="acctform" id="acctform" type=button> <div align="center"> <div id="waiting"></div> <p> <div id="showresults"></div> </div> <BR> <body></html> y.htm 我们大家一起来,嘿嘿 |