假设加密狗的地址0处存在信息"我是中国人!";我进行读取,但读出来的是乱码,请各位帮助!如果信息不是中文就可以执行成功,我这边要怎么进行判断呢,还是需要大家的帮助啊!先谢谢了Dog dog = new Dog(100);
                dog.DogAddr = 0;
                dog.DogBytes = 10;
                message="我是中国人!";
                dog.ReadDog();                if (dog.Retcode == 0)   //开始读加密狗数据
                {
                    char[] chTemp = new char[message.Length];
                    for (int i = 0; i < message.Length; i++)
                    {
                        chTemp[i] = (char)dog.DogData[i];
                    }
                    String str = new String(chTemp);
                    if (str == pwd)
                    {
                        MessageBox.Show(pwd+","+str);
                    }
                    else
                    {
                        MessageBox.Show(pwd + "," + str);
                    }
                }

解决方案 »

  1.   

    dog.DogData读出来的是什么类型的数据,是不是byte类型,如果是byte类型的话就是你处理错了,最好用byte[]保存然后再处理,也有可能结果地编码不是unicode的,需要转换
      

  2.   

    是byte类型没错,那我应该如何转换呢
      

  3.   

    把byte全部读出来,然后调用System.Text下的 UnicodeEncoding.GetString方法获取字符串,如果他的编码不同就换其它的 如UTF8Encoding
      

  4.   

    用下面的方法实时
    System.Text.Encoding.Unicode.GetString
    System.Text.Encoding.UTF8.GetString