XMLHTTP利用POST发送表单时提交中文的问题

  刚才写一个小偷程序,突然发现一旦POST中文时抓取不到内容,考虑到中文编码问题,像javascript中的escape()一样,在vbscript中也可以使用这个函数,只需要这个发送就可以正常抓取到内容了send("A="&escape(A)&""&escape(B))

  完成收工!

  附几个小偷常用的function函数

  Function ByteToStr(vIn)

  Dim strReturn,i,ThisCharCode,innerCode,Hight8,Low8,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

  ByteToStr = strReturn

  End Function

  Function GetURL(url,PostStr)

  Set Retrieval = Server.CreateObject("Microsoft.XMLHTTP")

  With Retrieval

  .Open "POST", url, false ,"" ,""

  .setRequestHeader "Content-Type","application/x-www-form-urlencoded"

  .Send(PostStr)

  GetURL = .ResponseBody

  End With

  Set Retrieval = Nothing

  GetURL=ByteToStr(GetURL)

  End Function

  Function RegExpText(strng,regStr)

  Dim regEx,Match,Matches,RetStr

  Set regEx = New RegExp

  regEx.Pattern = regStr

  regEx.IgnoreCase = True

  regEx.Global = True

  Set Matches = regEx.Execute(strng)

  For Each Match in Matches

  RetStr = RetStr & Match.Value & ","

  Next

  RegExpText = RetStr

  set regEx=nothing

  End Function

  用法:

  Dim PostStr,getContent,getArea

  PostStr = "action=mobile&mobile="&MobileNumber

  getContent = GetURL("http://www.ip138.com:8080/search.asp",PostStr)

  getArea = Replace(Replace(Replace(RegExpText(getContent,"卡号归属地</TD>((.|\n)*?)</TD>"),"卡号归属地</TD>",""),"<TD width=* align=""center"" class=tdc2>",""),"</TD>,","")

  Response.Write(getArea)