在使用XMLHTTP方式获取远程XML文档(GB2312)时,总是会出现乱码。因为远程文档采用GB2312编码,又不能修改为UTF-8,只有在接收端做处理。终于找到了一个方法,使用Adodb.Stream进行二进制数据处理。测试了一下,基本可用,但是卡巴斯基总是尖叫发现病毒。

以下代码片段来自:babyt 的Blog

Function GetBody(Url)
Dim objXML
On Error Resume Next
Set objXML = CreateObject("Microsoft.XMLHTTP")
With objXML
.Open "Get", Url, False, "", ""
.Send
GetBody = .ResponseBody
End With
GetBody=BytesToBstr(GetBody,"GB2312")
Set objXML = Nothing
End Function

Function BytesToBstr(strBody,CodeBase)
dim objStream
set objStream = Server.CreateObject("Adodb.Stream")
objStream.Type = 1
objStream.Mode =3
objStream.Open
objStream.Write strBody
objStream.Position = 0
objStream.Type = 2
objStream.Charset = CodeBase
BytesToBstr = objStream.ReadText
objStream.Close
set objStream = nothing
End Function

标签: xmlhttp

评论已关闭