用javascript解决外部数据抓取中的乱码问题

时间:2021-09-29 02:03:44

我们一般会在两个地方用到外部数据抓取,一个是在asp中,一个是在hta中。如果外部数据是gb2312编码的,就涉及到转码的问题,但是传统的用vbs函数进行处理的方法,运算量比较大,有些特殊字符还会出错。
    如果用adodb.stream控件来进行转码,就简单多了,不需要借助vbs的二进制处理函数了,同时速度快了很多。

复制代码代码如下:


<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>