服务器用串口以十六进制发了一串数据到客户机
EF EF 22 00 7B 32 30 30 36 2F 31 32 2F 32 35 20 30 39 3A 33 30 3A 33 34 7D 7B C1 F8 D6 DD D5 BE 7D 7B 71 71 71 7D 9F 6F FE FE 
翻译结果:
{2006/12/25 09:30:34}{柳州站}{qqq}
如果用ctrmscomm.InputMode =comInputModeText 
前面的时间常常马乱码.
如果用ctrMSComm.InputMode = comInputModeBinary
不知道怎么把十六进制换成中文.
谁能帮我写个接收的程序.

解决方案 »

  1.   

    如果知道某个汉字的区位码,只要将区号和位号分别加上160,然后分别转换为二进制数,区码在前、位码在后,就可以得到该汉字的十六位的机内码(国标码)。如“啊”字的区位码是1601,16+160=176-->B0H,01+160=161-->A1H,“啊”字的国标码为B0A1(16进制数)。” 也可以用debug等工具,把汉字转换成十六进制数
      

  2.   

    ctrMSComm.InputMode = comInputModeBinary
    用这个接收
      

  3.   


    ctrMSComm.InputMode = comInputModeBinary
    接收
    然后:
    chr()函数把十六进制转换成字符
      

  4.   

    Public Function AscToStr(ByVal str As String) As String
    Dim strTemp() As String
    Dim t1 As String
     strTemp = Split(str, " ")
     For i = LBound(strTemp) To UBound(strTemp) - 1
         t1 = t1 & Chr("&H" & strTemp(i))
     Next
    AscToStr = t1End Function