获取页面後编码问题求解 BytesToBstr
高手请帮忙一下.我用以下码可以成功读取目的URL的内容:FunctionCrawl(url)DimTakenHTML,HTMLRsSetHTMLRs=CreateObje...
高手请帮忙一下. 我用以下码可以成功读取目的 URL 的内容:
Function Crawl(url)
Dim TakenHTML, HTMLRs
Set HTMLRs = CreateObject("Microsoft.XMLHTTP")
HTMLRs.Open "GET", url, False
HTMLRs.setRequestHeader "content-type", "text/xml; charset=utf-8"
HTMLRs.Send
TakenHTML = BytesToBstr(HTMLRs.responseBody, "utf-8")
End Function
Function BytesToBstr(body, Cset)
Dim objstream
set objstream = Server.CreateObject("adodb.stream")
objstream.Type = 1
objstream.Mode =3
objstream.Open
objstream.Write body
objstream.Position = 0
objstream.Type = 2
objstream.Charset = Cset
BytesToBstr = objstream.ReadText
objstream.Close
set objstream = nothing
End Function
并使用:
Session.CodePage = 65001
Response.charset = "utf-8"
把网页由乱码变成能看的字. 但是出现第二个问题, 就是我无法采集段落的文字.
例如: "这里有 3 橙"
Instr(string, "橙") 的结果为 "0"
用 Left(string, 1) 测试显示为 "这"
采集回来的字串, 是 1 个中文字一个单位.
但是如果我在同一页的下方设定
a = "这里有 3 橙"
Instr(a, "里"), 结果是 "4". 就是 1 个中文字 3 个码
请问我怎样才可以解决采集回来字串的问题? 不然无法截取所需资料.
谢谢 展开
Function Crawl(url)
Dim TakenHTML, HTMLRs
Set HTMLRs = CreateObject("Microsoft.XMLHTTP")
HTMLRs.Open "GET", url, False
HTMLRs.setRequestHeader "content-type", "text/xml; charset=utf-8"
HTMLRs.Send
TakenHTML = BytesToBstr(HTMLRs.responseBody, "utf-8")
End Function
Function BytesToBstr(body, Cset)
Dim objstream
set objstream = Server.CreateObject("adodb.stream")
objstream.Type = 1
objstream.Mode =3
objstream.Open
objstream.Write body
objstream.Position = 0
objstream.Type = 2
objstream.Charset = Cset
BytesToBstr = objstream.ReadText
objstream.Close
set objstream = nothing
End Function
并使用:
Session.CodePage = 65001
Response.charset = "utf-8"
把网页由乱码变成能看的字. 但是出现第二个问题, 就是我无法采集段落的文字.
例如: "这里有 3 橙"
Instr(string, "橙") 的结果为 "0"
用 Left(string, 1) 测试显示为 "这"
采集回来的字串, 是 1 个中文字一个单位.
但是如果我在同一页的下方设定
a = "这里有 3 橙"
Instr(a, "里"), 结果是 "4". 就是 1 个中文字 3 个码
请问我怎样才可以解决采集回来字串的问题? 不然无法截取所需资料.
谢谢 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询