字符串问题 看有法子否?
Dim byteAry() As Byte
Dim strData As String
Dim writelen As Integer
Dim n As Integer
Winsock1.GetData strData
byteAry = StrConv(strData, vbFromUnicode)
writelen = Len(StrConv(strData, vbFromUnicode))
For n = 0 To writelen - 1
MsgBox Hex(byteAry(n))
Next n
结果:
byteAry(0) =3F ByteAry(1)=2 byteAry(2)=14
而正确的应该是 byteAry(0) =F0 ByteAry(1)=06 byteAry(2)=2 byteAry(3)=14
上面的代码 那里出错了? 应该如何???
问题点数:20、回复次数:5Top
1 楼sinos_sinos(挑战不是障碍 人生处处精彩)回复于 2005-08-04 21:49:49 得分 0
自己顶Top
2 楼sinos_sinos(挑战不是障碍 人生处处精彩)回复于 2005-08-05 08:21:32 得分 0
再顶Top
3 楼of123()回复于 2005-08-05 09:53:50 得分 20
使用二进制方式读入:
Dim byteAry() As Byte
Dim tmp As Varient
Dim n As Integer
Winsock1.GetData tmp
byteAry = tmp
For n = 0 To Ubound(byteAry)
MsgBox Hex(byteAry(n))
Next n
Top
4 楼of123()回复于 2005-08-05 09:59:24 得分 0
原因是,中文系统下,凡是大于 &H7F 的码会被认为是中文的首字节,和紧随的字节共同组成一个汉字。如果此码的汉字不存在,则系统自动用“?”来替代,就是 &H3F。
所以,接收任意值的二进制码时,不可使用字符串。Top
5 楼sinos_sinos(挑战不是障碍 人生处处精彩)回复于 2005-08-06 19:07:49 得分 0
Dim tmp As Varient
这样定义 就可以 ? 就是二进制?
谢谢 你啊 呵呵 帮大忙了Top




