用WINSOCK传输文件中的乱码有关问题

用WINSOCK传输文件中的乱码问题
用WINSOCK做了传输文件的程序,在接受文件时,出现了乱码(部分汉字乱码),
  例如我要传输的内容,传输出去后,接收到是这样的:Dim Gvstr As String = "" '全局变量 历史遗留数砭莅?
请各位大侠告诉我该如何接收才能保证不乱码呢?

------解决方案--------------------
你可否列出一个收到的字节数组的内容,和其对应的正确的字符?这样好判断些。
------解决方案--------------------
将任何要传输的内容都转为Byte数组,发送,接收Byte数组,反转为所需内容。
------解决方案--------------------
VB code

Dim lngFileSize As Long
Dim lngReadSize As Long
Dim strFileName As String
Dim lngState As Long
Dim fs As Integer
Private Sub Command1_Click()
    strFileName = "C:\test.rar"
    lngFileSize = 0
    lngReadSize = 0
    lngState = 0
    Winsock1.Connect "127.0.0.1", 999
End Sub

Private Sub Winsock1_Connect()
    Winsock1.SendData "GET " & strFileName
End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
    Dim byBuff() As Byte
    Dim strBuff As String
    Select Case lngState
    Case 0: ' 取得服务器发回来的文件数据大小
            Winsock1.GetData strBuff, vbString, bytesTotal
            If Len(strBuff) < 5 Then
                Winsock1.Close
                Exit Sub
            End If
            If UCase(Left(strBuff, 3)) <> "+OK" Then
                Winsock1.Close
                Exit Sub
            End If
            strBuff = Right(strBuff, Len(strBuff) - 4)
            If IsNumeric(strBuff) = False Then
                Winsock1.Close
                Exit Sub
            End If
            lngFileSize = CLng(strBuff)
            lngState = 1
            Winsock1.SendData "+OK Send Data"
            Exit Sub

    Case 1: '开始读取文件数据
            Winsock1.GetData byBuff, vbArray + vbByte, bytesTotal
            If lngReadSize = 0 Then
                fs = FreeFile
                Open strFileName For Binary As #fs
            End If
            Put #fs, , byBuff
            lngReadSize = lngReadSize + bytesTotal
            If lngReadSize >= lngFileSize Then
                Close #fs
                Winsock1.Close
            End If
            Exit Sub
    End Select
End Sub