国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

如何解決遠(yuǎn)程頁面抓取中的亂碼問題

2024-05-06 15:47:47
字體:
供稿:網(wǎng)友

由于平時使用的網(wǎng)頁文件基本上都是gb2312編碼方式,如果通過xmlhttp控件讀取的話,肯定會出現(xiàn)亂碼問題,但是要把所有文件都改成utf-8編碼,操作上比較麻煩。經(jīng)過反復(fù)比較,我找到了相對實用的解決方法。

  ff提供了overrideMimeType方法,可以指定返回值的編碼,所以解決起來比較簡單,只要把這個方法指向gb2312就可以了。對于IE,可以用vbs配合來作編碼轉(zhuǎn)換,用gb2utf8來轉(zhuǎn)換接收到的二進(jìn)制數(shù)據(jù),其中利用到execScript方法來調(diào)用vbs的函數(shù)。

復(fù)制代碼 代碼如下:


<body></body>
<script>
loadPage("index.htm")
function loadPage(url){
var xh=window.Event?new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHTTP")
xh.open("GET",url,true)
if(window.Event)
xh.overrideMimeType("text/xml;charset=gb2312")
xh.onreadystatechange=function(){
if(xh.readyState!=4)
return
var v
v=window.Event?xh.responseText:window.gb2utf8(xh.responseBody)
alert(v)
}
window.gb2utf8=function(data){
var glbEncode=[],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
return unescape(t.join("%")).slice(0,-1)
}
xh.send(null)
}
</script>

您可能感興趣的文章:

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 龙里县| 罗江县| 监利县| 乐平市| 焦作市| 兴安盟| 赫章县| 伊金霍洛旗| 葫芦岛市| 汝南县| 芷江| 盐城市| 琼海市| 德化县| 阿克苏市| 兰坪| 改则县| 兴海县| 孟津县| 北流市| 祁门县| 黑山县| 兴安盟| 红河县| 巴东县| 贵德县| 东平县| 武清区| 浦县| 陵水| 民乐县| 金湖县| 兴国县| 平昌县| 盈江县| 大厂| 南乐县| 罗甸县| 宜川县| 东兰县| 东兰县|