byte[] bytes1 = new byte[] { 0xDF };
string sd = System.Text.Encoding.Encoding.Default.GetString(bytes);byte[] bytes2 = Encoding.Default.GetBytes(sd);现在想把二进制转换为string;
然后再将string类型的变量转换回原始的二进制(bytes1)但是现在GetString之后,再GetBytes,最初的bytes1与后来的bytes2内容不一致,请问如何处理?

解决方案 »

  1.   

    byte[] byteArray = System.Text.Encoding.Default.GetBytes ( str );
    sstring str = System.Text.Encoding.Default.GetString ( byteArray );
    BitConverter.GetBytes
      

  2.   


    字符串有它自己的原则,因此当你将byte[]使用这种方式转为string,就会丢失信息。要正确地序列化byte[],可以使用    System.Convert.ToBase64String
        System.Convert.FromBase64String
      

  3.   

    不要轻易地做所谓转换,任何轻易转换(比如以为任意byte[]都等于正规的unicode字符串)就会损失信息,所以你了解其原理才应该转换。
      

  4.   

    如果你是使用中文版的操作系统,默认字符集是GB2312编码的,单字节被误认为是ASCII码,但是你给的值却不再ASCII码的范围内,参考一下http://baike.baidu.com/view/25492.htm