用javascript解決外部數(shù)據(jù)抓取中的亂碼問題
更新時(shí)間:2007年04月07日 00:00:00 作者:
我們一般會(huì)在兩個(gè)地方用到外部數(shù)據(jù)抓取,一個(gè)是在asp中,一個(gè)是在hta中。如果外部數(shù)據(jù)是gb2312編碼的,就涉及到轉(zhuǎn)碼的問題,但是傳統(tǒng)的用vbs函數(shù)進(jìn)行處理的方法,運(yùn)算量比較大,有些特殊字符還會(huì)出錯(cuò)。
如果用adodb.stream控件來進(jìn)行轉(zhuǎn)碼,就簡(jiǎn)單多了,不需要借助vbs的二進(jìn)制處理函數(shù)了,同時(shí)速度快了很多。
<script>
function loadData(sUrl){
var xh
xh=new ActiveXObject("Microsoft.XMLHTTP")
xh.open("GET",sUrl,false)
xh.send(null)
return gb2utf8(xh.responseBody)
}
function gb2utf8(sData){
var oStream
oStream=new ActiveXObject("adodb"+".stream")
oStream.Type=1
oStream.Mode=3
oStream.Open
oStream.Write(sData)
oStream.Position=0
oStream.Type=2
oStream.Charset="GB2312"
return oStream.ReadText()
}
</script>
如果用adodb.stream控件來進(jìn)行轉(zhuǎn)碼,就簡(jiǎn)單多了,不需要借助vbs的二進(jìn)制處理函數(shù)了,同時(shí)速度快了很多。
復(fù)制代碼 代碼如下:
<script>
function loadData(sUrl){
var xh
xh=new ActiveXObject("Microsoft.XMLHTTP")
xh.open("GET",sUrl,false)
xh.send(null)
return gb2utf8(xh.responseBody)
}
function gb2utf8(sData){
var oStream
oStream=new ActiveXObject("adodb"+".stream")
oStream.Type=1
oStream.Mode=3
oStream.Open
oStream.Write(sData)
oStream.Position=0
oStream.Type=2
oStream.Charset="GB2312"
return oStream.ReadText()
}
</script>
您可能感興趣的文章:
相關(guān)文章
Insert Date and Time into Access
Insert Date and Time into Access...2007-04-04
ASP 信息提示函數(shù)并作返回或者轉(zhuǎn)向
這篇文章主要介紹了ASP 信息提示函數(shù)并作返回或者轉(zhuǎn)向,需要的朋友可以參考下2016-12-12
ASP+MSSQL2000 數(shù)據(jù)庫被批量注入后的解決方法
這陣子,采用ASP+MSSQL設(shè)計(jì)的很多網(wǎng)站可能遭遇到sql數(shù)據(jù)庫被掛馬者插入JS木馬的經(jīng)歷;這不,朋友的一個(gè)網(wǎng)站就被黑客忽悠了一把2009-02-02

