vb adodb.stream write写入网页代码为utf8编码的问题
从网页通过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':在此环境中不允许操作;小弟刚入行,不懂这些这么高深的用法,请路过大侠帮帮我啊,在此谢过,并在线等
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':在此环境中不允许操作;小弟刚入行,不懂这些这么高深的用法,请路过大侠帮帮我啊,在此谢过,并在线等
...全文
相关推荐
Utf-8编码与解码(vb6代码)
Utf-8编码与解码(vb6代码) 用VB做爬虫时遇到的乱码问题,编解码方式不对造成,用这个方法使各种编码方式之间互相转化
UTF8.zip_Change
Charset Change Module UTF-8 Code : Visual Basic 6.0
读取UTF8,Unicode,ANSI
vb6,读取UTF8,Unicode,ANSI 任何TXT 和其他文件
VB中ANSI转换成UTF-8
VB中ANSI转换成UTF-8关于vb网络的编程基础知识winsock控件的使用,简单的聊天程序,局域网的网络编程
vb各种读取文本的方法
vb读取文本的各种方法 不喜勿喷啊


网络编程
