VB6 "XMLHTTP" 方法抓取网页代码,出现乱码,怎么处理?

macalun 2010-08-11 06:02:33
Dim webBRS As Object
Dim strHTML As String
Set webBRS = CreateObject("Microsoft.XMLHTTP")

webBRS.Open "GET", "http://www.7176.com/title/tt1028532", False
webBRS.send
While webBRS.ReadyState <> 4
DoEvents
Wend
strHTML = StrConv(webBRS.responsebody, vbUnicode)


抓取的文本中出现乱码“ ' ”,实际上是“Hachiko: A Dog's Story”中的那个上引号。

而上引号在Win系统中是允许作为文件名字符使用的。

这种情况怎么处理呢?

求教各位高人。
...全文
593 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
网络菜鸟00 2010-08-16
  • 打赏
  • 举报
回复
我遇到这种情况采用的是替换掉,不知有没有自动处理的方法。
macalun 2010-08-16
  • 打赏
  • 举报
回复
LS的代码石网卡查到过,近日也应用到程序了试了,结果与运用“ StrConv(webBRS.responsebody, vbUnicode)”是一样的,那个上引号取来仍然是“ ' ”。

现在暂时是在程序中把它手动转换为上引号,以解决问题。
但对于其它的特殊字符呢?

有没有最理想的解决方法呢?
期待!
katar1024 2010-08-13
  • 打赏
  • 举报
回复
XMLHTTP的确有这个问题,需要对代码进行加工:

getHTTPPage=bBytesToBstr(objXML.responseBody)'

Function bBytesToBstr(body) 
dim objstream
set objstream = CreateObject("adodb.stream") '//调用adodb.stream组件
objstream.Type = 1
objstream.Mode =3
objstream.Open
objstream.Write body
objstream.Position = 0
objstream.Type = 2
objstream.Charset = "GB2312" '转换原来默认的UTF-8编码转换成GB2312编码,否则直接用XMLHTTP调用有中文字符的网页得到的将是乱码
bBytesToBstr = objstream.ReadText
objstream.Close
set objstream = nothing
end Function
king06 2010-08-12
  • 打赏
  • 举报
回复
chr(&H27)就是单引号,尝试将这些字符解码.
icansaymyabc 2010-08-12
  • 打赏
  • 举报
回复
' 并非乱码。是HTML规定把某些内容必须写成代码。

比如,网页中出现的 ‘<’只能写成 < ‘>’只能写成 > 空格写成   等等。
macalun 2010-08-12
  • 打赏
  • 举报
回复
难道这种情况无解吗!?
kmzs 2010-08-12
  • 打赏
  • 举报
回复
像是URLComponent编码
ratc 2010-08-11
  • 打赏
  • 举报
回复
关注中

7,759

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧