我的接收数据部分代码,包大小是1024:
sTmp = INET(Index).GetChunk(1024, icString)
If Len(sTmp) = 0 Then
bDone = True
End If
Do While Not bDone
Get_Data = Get_Data + sTmp
sTmp = INET(Index).GetChunk(1024, icString)
If Len(sTmp) = 0 Then
bDone = True
End If
Loop采出来的内容变成了这样</STRONG></A></P>
<P> 拉斯维加斯一直被世人认定是成人的奇幻世界。这个地方是一个不折不扣的不夜赌城,它存在的目地就是为了赌,除此之处谡飧龆嘣某鞘欣铮阑亩杉俾霉荨⒅挠槔纸谀俊⒘鄣呒兜耐聿汀⑹澜缂兜母叨蚯虺 捕伎梢栽谡饫镎业健?/P>
<P align=center><IMG style="BORDER-LEFT-COLOR: #999999; 当我把包大小改成10240的时候这里的字符就正常了,因此我怀疑是双字节字符在分包时被分割了,请问有办法解决不?谢谢
sTmp = INET(Index).GetChunk(1024, icString)
If Len(sTmp) = 0 Then
bDone = True
End If
Do While Not bDone
Get_Data = Get_Data + sTmp
sTmp = INET(Index).GetChunk(1024, icString)
If Len(sTmp) = 0 Then
bDone = True
End If
Loop采出来的内容变成了这样</STRONG></A></P>
<P> 拉斯维加斯一直被世人认定是成人的奇幻世界。这个地方是一个不折不扣的不夜赌城,它存在的目地就是为了赌,除此之处谡飧龆嘣某鞘欣铮阑亩杉俾霉荨⒅挠槔纸谀俊⒘鄣呒兜耐聿汀⑹澜缂兜母叨蚯虺 捕伎梢栽谡饫镎业健?/P>
<P align=center><IMG style="BORDER-LEFT-COLOR: #999999; 当我把包大小改成10240的时候这里的字符就正常了,因此我怀疑是双字节字符在分包时被分割了,请问有办法解决不?谢谢
Private Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" (ByRef Destination As Any, ByRef Source As Any, ByVal Length As Long)Private Sub Command1_Click()
Dim aAll() As Byte, aBuf() As Byte
Dim lAllLen As Long, lBufLen As Long
Do While True
aBuf = Inet(Index).GetChunk(1024, icByteArray)
lBufLen = UBound(aBuf) + 1
If lBufLen <= 0 Then Exit Do
ReDim Preserve All(lAllLen + lBufLen - 1)
CopyMemory aAll(lAllLen), aBuf(0), lBufLen
lAllLen = lAllLen + lBufLen
Loop
stmp = StrConv(aAll, vbUnicode)
End Sub
http://topic.csdn.net/u/20071119/12/8e51d888-20a1-449a-ad4b-0b2e68a076c5.html
回贴,我给分
如果使用二进制方式,增加了strconv转换,cpu高达100%。icstring有很多bug,读不了很多内容有哪位大侠能解决??