有多个byte[]数组通过循环把他们一次转换为字符串并显示在richTextBox内,可能存在乱码,但是其中有一个byte[]的一部分肯定可以转换为字符串,但是执行完成之后richTextBox中什么都没有显示。我通过日志记录将这些字符串写在txt文件中是可以看到的。
求帮助?

解决方案 »

  1.   

    //程序代码 
    private void loadPayloadStr()
            {
                foreach (var p in PacketList)
                {
                    byte[] tmp = getPayloadData(p);//获取byte[]
                    if (tmp != null && tmp.Length > 0)
                    {
                        string s = Config.EnCode.GetString(tmp);//转化为字符串  此处使用UTF-8
                        //Log.LogWriter.Write("<<"+s);//日志跟踪
                        this.Invoke(new ShowHandler(setData),new object []{s,foreColor});//向RichTextBox写入
                    }
                }
            }   //richTextBox
       private void setData(string dataStr, Color selColor)
            {
                if (string.IsNullOrEmpty(dataStr))
                    return;
                txtDataInfo.SelectionColor = selColor;
                txtDataInfo.AppendText(dataStr);
            }
      

  2.   

    断点调试,你看看str值转换成功没有另外,string与byte[]的相互转换,有个整理好的文章:     string和byte[]的转换