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

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

作者: 来源: 时间: 17-11-23 15:24:23

我们一般会在两个地方用到外部数据抓取,一个是在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>  
11
22
33
隐藏区块

会员注册

本功能为预留功能,暂不支持注册 ^_^

Login

社交帐号登陆

使用以下任意帐号可登陆本站

Close section
Close

联系我们

关于5UCMS 您有任何需求 均可以留言给我们