IE不支持overrideMimeType方法,并且只能用一种很蹩脚的方法来解决,此时需要引入一个杂交的函数: 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("%")); }xmlhttp = getXMLHttpRequest(); var url = "http://cn.astrology.yahoo.com/";; xmlhttp.open("GET", url, true); xmlhttp.onreadystatechange = function()...{ if (xmlhttp.readyState == 4) if (xmlhttp.status == 200) alert(gb2utf8(xmlhttp.responseBody)); //注意这里要用responseBody }; xmlhttp.send(null); gb2utf8函数直接解析XMLHttpRequest返回的二进制数据,其中要利用execScript方法来执行VBScript的函数。所以说是一个杂交的函数。感谢blueidea论坛 提供的算法。 虽然有了解决的办法,但形式丑陋,而且不符合web标准。所以应该在编程中尽量避免,如果是开发web应用,应尽量使用UTF-8编码,或者在服务端设置正确的编码信息。至于以上范例,有盗取其他网站内容的嫌疑,更是不为提倡。