使用XMLHTTP从其他页面获取数据后得到全是乱码!

028city 2004-05-06 09:57:13
不知道要如何转换才能正常查看

Function bytes2BSTR(vIn)
Dim i, ThischrCode, NextchrCode
strReturn = ""
For i = 1 To LenB(vIn)
ThischrCode = AscB(MidB(vIn, i, 1))
If ThischrCode < &H80 Then
strReturn = strReturn & Chr(ThischrCode)
Else
NextchrCode = AscB(MidB(vIn, i + 1, 1))
strReturn = strReturn & Chr(CLng(ThischrCode) * &H100 + CInt(NextchrCode))
i = i + 1
End If
Next
bytes2BSTR = strReturn
End Function

Function GetURL(url)
Set Retrieval = Server.CreateObject("Microsoft.XMLHTTP")
With Retrieval
.Open "GET", url, False, "", ""
.Send
GetURL = .ResponseText
GetURL = bytes2BSTR(.ResponseBody) '是否使用这个函数输出GetURL都是乱码,但是对其他一些网页就是正常的!这个网页是否有加密的可能?!!
End With
Set Retrieval = Nothing
End Function
...全文
68 6 点赞 打赏 收藏 举报
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
cxty 2004-05-09
set http=server.createobject("MSXML2.XMLHTTP") Http.open "GET",url,false
Http.setRequestHeader "Content-Length",url.length
Http.setRequestHeader "CONTENT-TYPE","application/x-www-form-urlencoded"
Http.send()
getHTTPPage=Http.responseText'<----------用这个
set http=nothing
  • 打赏
  • 举报
回复
028city 2004-05-09
怎么没有人回答啊?!
  • 打赏
  • 举报
回复
028city 2004-05-07
To:QQgenie(妖魔鬼怪)
你的也试过了,还是不行
主要的是我用我的程序拿其他网页数据都是正常的,但是就是这个网站有问题
www.travelsky.com
想得到他航班查询结果,查询页面strUrl = "http://www.travelsky.com/servlet/booktkttest.BookTktTest"
提交的数据有(在首页使用get方法得到的)
strQuery = "airkind=oneway&org=PEK&viacity=&via=SHA&dstcity=%B5%BD%B4%EF%B3%C7%CA%D0%3A&dst=CAN&fsttime=%B3%F6%B7%A2%C8%D5%C6%DA%3A&year=04&month=may&date=07&timergo1=%CA%B1%BF%CC%3A&timego=0700§ime=&back_year=04&back_month=may&back_date=07&timergo2=&timego=0700&airline=all&direct=&orgyear=2004%C4%EA&backyear=&h_ok=&actionkind=oneway&servleturl=%2Fgb%2Fnewbooktkt%2Fgettkt.jsp"

xml.Open "GET",strUrl&"?"&strQuery,False

不知道是不是网站问题,试过了所有方法
请大侠也试试!
  • 打赏
  • 举报
回复
QQgenie 2004-05-07
你再改改吧

<%
Const adTypeBinary = 1
Const adTypeText = 2
Function Bytes2bStr(vin)
Dim BytesStream,StringReturn
Set BytesStream = Server.CreateObject("ADODB.Stream")
With BytesStream
.Type = adTypeText
.Open
.WriteText vin

.Position = 0
.Charset = "GB2312" '//就是这个了
.Position = 2
StringReturn = .ReadText
.close
End With
Set BytesStream = Nothing

Bytes2bStr = StringReturn

End Function


Dim objXMLHTTP, xml, sUrl

sUrl="http://163.com/"
Set xml = Server.CreateObject("Microsoft.XMLHTTP")

xml.Open "GET", sUrl, False

xml.Send

SourceCode = bytes2BSTR(xml.responseBody)


Response.Write "<xmp>"
Response.Write SourceCode '//看源码了
Response.Write "</xmp>"
Response.write "<BR><BR><BR>"

Set xml = Nothing
%>
  • 打赏
  • 举报
回复
postfix2 2004-05-07
在你生成xml面页中加上
Response.ContentType = "text/xml"
Response.CharSet = "GB2312"

xml文件加上
<?xml version=""1.0"" encoding=""GB2312""?>

GB2312~~~~~~~~
  • 打赏
  • 举报
回复
sfply 2004-05-07
正常都是这么用的啊
  • 打赏
  • 举报
回复
相关推荐
发帖
ASP
加入

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
帖子事件
创建了帖子
2004-05-06 09:57
社区公告
暂无公告