mscomm收到的是byte[] 吗?如果是,你看一下你用哪中Encoding, 可能是Encoding 的选择不对,比如试试: Encoding.UTF8; .Net自带了下面这些:   // Get different encodings.
      Encoding  u7    = Encoding.UTF7;
      Encoding  u8    = Encoding.UTF8;
      Encoding  u16LE = Encoding.Unicode;
      Encoding  u16BE = Encoding.BigEndianUnicode;
      Encoding  u32   = Encoding.UTF32;

解决方案 »

  1.   

    Encoding.UTF7;
    Encoding.UTF8;
    Encoding.Unicode;
    Encoding.BigEndianUnicode;
    Encoding.UTF32;
    我每个都试过了,还是乱码
    代码是这样的System.Text.Encoding encoding = System.Text.Encoding.UTF8;
    byte [] bTemp = (byte[])this.axMSComm1.Input;//数据送数组      
    String temp  = Encoding.Unicode.GetString(bTemp);
    textBox_RecASC.Text = temp;
      

  2.   

    更正一下,代码第3行是
    string temp  = encoding.GetString(bTemp);
      

  3.   

    我看了一下ASCII表,好像这些就是ASCII表里的字符,该字符对应的16进制数就是正确的数字,我该怎么转换呢?
      

  4.   

    我用DELPHI编的,也出现乱码情况,在网上搜索说是MSCOMM自身的BUG,不知该怎么办了
      

  5.   

    建议楼主还是用API,MSCOMM貌似不可靠
      

  6.   

    MSComm1.InputMode=comInputModeText     
      将输入模式设置成文本形式试下吧