时间:2021-05-18
由于平时使用的网页文件基本上都是gb2312编码方式,如果通过xmlhttp控件读取的话,肯定会出现乱码问题,但是要把所有文件都改成utf-8编码,操作上比较麻烦。经过反复比较,我找到了相对实用的解决方法。
ff提供了overrideMimeType方法,可以指定返回值的编码,所以解决起来比较简单,只要把这个方法指向gb2312就可以了。对于IE,可以用vbs配合来作编码转换,用gb2utf8来转换接收到的二进制数据,其中利用到execScript方法来调用vbs的函数。
复制代码 代码如下:
<body></body>
<script>
loadPage("index.htm")
functionloadPage(url){
varxh=window.Event?newXMLHttpRequest():newActiveXObject("Microsoft.XMLHTTP")
xh.open("GET",url,true)
if(window.Event)
xh.overrideMimeType("text/xml;charset=gb2312")
xh.onreadystatechange=function(){
if(xh.readyState!=4)
return
varv
v=window.Event?xh.responseText:window.gb2utf8(xh.responseBody)
alert(v)
}
window.gb2utf8=function(data){
varglbEncode=[],t,i,j,len
gb2utf8_data=data
execScript("gb2utf8_data=MidB(gb2utf8_data,1)+''","vbscript")
t=escape(gb2utf8_data).replace(/%u/g,"").replace(/(.{2})(.{2})/g,"%$2%$1").replace(/%([A-Z].)%(.{2})/g,"@$1$2")
t=t.split("@")
i=0
len=t.length
while(++i<len){
j=t[i].substring(0,4)
if(!glbEncode[j]){
gb2utf8_char=eval("0x"+j)
execScript("gb2utf8_char=Chr(gb2utf8_char)","vbscript")
glbEncode[j]=escape(gb2utf8_char).substring(1,6)
}
t[i]=glbEncode[j]+t[i].substring(4)
}
gb2utf8_data=gb2utf8_char=null
returnunescape(t.join("%")).slice(0,-1)
}
xh.send(null)
}
</script>
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了python抓取并保存html页面时乱码问题的解决方法。分享给大家供大家参考,具体如下:在用Python抓取html页面并保存的时候,经常出现抓取
在使用Windows10系统中。很多朋友反映Edge浏览器下载时出现乱码的问题,如何解决Windows10系统Edge浏览器下载出现乱码的问题呢?Windows
引言:在JQuery的AjaxPOST请求中,进行请求,其中的中文在后台,显示为乱码,该如何解决呢?问题的引入:复制代码代码如下:varregid=$('#or
遇到java向mysql插入数据乱码问题,如何解决?MySQL默认编码是latin1mysql>showvariableslike'character%';+-
经营很多店铺的卖方应该遇到过订单印刷的一系列问题。例如,导出乱码等问题,如何解决订单导出乱码?其实出现乱码是因为你的excel版本太低了,请换成2013版以上的