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

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