vb adodb.stream write写入网页代码为utf8编码的问题

glowing_yu glowing_yu 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
从网页通过inet控件的Inet1.GetChunk读取其代码,然后想转换为汉字,转换代码如下
Private Sub Inet1_StateChanged(ByVal State As Integer)
Dim strRecText As String
Dim strBuffer As String
Select Case State
Case 1
StatusBar1.Panels(2) = "正在查询主机的IP"
Case 2
StatusBar1.Panels(2) = "成功找到主机的IP"
Case 3
StatusBar1.Panels(2) = "正在于主机链接"
Case 4
StatusBar1.Panels(2) = "与主机链接成功"
Case 5
StatusBar1.Panels(2) = "正在向主机传送命令"
Case 6
StatusBar1.Panels(2) = "成功向主机传送命令"
Case 7
StatusBar1.Panels(2) = "正在接收主机的响应"
Case 8
StatusBar1.Panels(2) = "成功接收主机的响应"
Case 11
StatusBar1.Panels(2) = "超时"
Case 12
Do
strBuffer = Inet1.GetChunk(10240)
strRecText = strRecText & strBuffer
Loop Until Len(strBuffer) = 0
'Print #3, strRecText
'此次开始调用转换函数(utf8编码转为汉字)
str = BytesToBstr(StrRecData, "utf-8")
’处理转换后的代码
Call WrRecToHFLex(str)
Case Else
StatusBar1.Panels(2) = "其他情况!!"
End Select
End Sub

’转换函数

Function BytesToBstr(strBody, CodeBase)
Dim objStream
Set objStream = CreateObject("Adodb.Stream")
objStream.Type = 1
objStream.Mode = 3
objStream.Open
'objStream.LoadFromFile strBody
If Len(strBody) <> 0 Then objStream.Write (strBody)
objStream.Position = 0
objStream.Type = 2
objStream.Charset = CodeBase
BytesToBstr = objStream.ReadText
objStream.Close
Set objStream = Nothing
End Function

运行后出现实时错误:“实时错误'3001': 参数类型不正确,或不在可接受范围之内,或与其他参数冲突。”,按调试,就是红色字哪里出错(If Len(strBody) <> 0 Then objStream.Write (strBody))这里出错,请各位高手指点一下,错在哪里,我查了网上很多资料,很多都出现了这个错误,但没有被根本解决;我也尝试把这段代码改为:If Len(strBody) <> 0 Then objStream.WriteText (strBody)但出现错误为“实时错误'3219':在此环境中不允许操作;小弟刚入行,不懂这些这么高深的用法,请路过大侠帮帮我啊,在此谢过,并在线等
...全文
评论 27
收藏 已收藏
分享
返回顶部
glowing_yu
网络编程 1,502 成员 18,427 内容