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 上面的代码 那里出错了?  应该如何???

解决方案 »

  1.   

    使用二进制方式读入:
        
        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
      

  2.   

    原因是,中文系统下,凡是大于 &H7F 的码会被认为是中文的首字节,和紧随的字节共同组成一个汉字。如果此码的汉字不存在,则系统自动用“?”来替代,就是 &H3F。所以,接收任意值的二进制码时,不可使用字符串。
      

  3.   

    Dim tmp As Varient
    这样定义 就可以 ?  就是二进制?谢谢 你啊 呵呵 帮大忙了