XMLHttp抓取网页乱码问题!
抓取的时候表单的乱码解决了,但是现显示始终是问号(乱码)
代码如下:
On Error Resume Next
Server.ScriptTimeOut=9999999
Url="http://www.travelsky.com/servlet/booktkttest.BookTktTest"
servleturl=request("servleturl")
actionkind=request("actionkind")
org=request("org")
via=request("via")
dst=request("dst")
timego=split(request("timego"),", ")
back_year=request("back_year")
back_month=request("back_month")
back_date=request("back_date")
airline=request("airline")
direct=request("direct")
orgyear=request("orgyear")
backyear=request("backyear")
go_year=request("year")
go_month=request("month")
go_date=request("date")
StrPost="servleturl="&servleturl&"&actionkind="&actionkind&"&org="&org&"&via="&via&"&dst="&dst&"&timego="&timego(0)&"&timego="&timego(1)&"&back_year="&back_year _
&"&back_month="&back_month&"&back_date="&back_date&"&airline="&airline&"&direct="&direct&"&orgyear="&orgyear&"&backyear="&backyear _
&"&year="&go_year&"&month="&go_month&"&date="&go_date
StrPost=URLEncoding(StrPost)
Set Http = Server.CreateObject("MSXML2.XMLHttp")
Http.Open "POST", Url, False
Http.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
Http.Send StrPost
ReSult = bytes2BSTR(Http.ResponseBody)
Response.Write ReSult
问题点数:0、回复次数:5Top
1 楼edisonli(大浪淘沙)回复于 2005-06-04 10:23:11 得分 0
Function bytes2BSTR(vIn)
Dim strReturn
Dim I, ThisCharCode, NextCharCode
strReturn = ""
For I = 1 To LenB(vIn)
ThisCharCode = AscB(MidB(vIn, I, 1))
If ThisCharCode < &H80 Then
strReturn = strReturn & Chr(ThisCharCode)
Else
NextCharCode = AscB(MidB(vIn, I + 1, 1))
strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
I = I + 1
End If
Next
bytes2BSTR = strReturn
End Function
Function URLEncoding(vstrIn)
strReturn = ""
For i = 1 To Len(vstrIn)
ThisChr = Mid(vStrIn,i,1)
If Abs(Asc(ThisChr)) < &HFF Then
strReturn = strReturn & ThisChr
Else
innerCode = Asc(ThisChr)
If innerCode < 0 Then
innerCode = innerCode + &H10000
End If
Hight8 = (innerCode And &HFF00)\ &HFF
Low8 = innerCode And &HFF
strReturn = strReturn & "%" & Hex(Hight8) & "%" & Hex(Low8)
End If
Next
URLEncoding = strReturn
End FunctionTop
2 楼patchclass(黑翼)回复于 2005-06-04 10:56:15 得分 0
那是因为默认的字符位utf-8的编码
用楼上的
bytes2BSTR转换responseBodyTop
3 楼edisonli(大浪淘沙)回复于 2005-06-04 11:06:02 得分 0
patchclass(黑翼)
上面两贴都是我发的,我已经转换了Top
4 楼edisonli(大浪淘沙)回复于 2005-06-04 17:52:29 得分 0
孟子E章在不在啊,帮帮忙啊Top
5 楼angel2a(天使之守护)回复于 2005-06-10 16:08:57 得分 0
在你的背后页面加<%response.charset="gb2312"%>试试Top




