我有一个二进制的字符串“01010001010100001001”,怎么样将它复原为本来的字符串?请各位指教!

解决方案 »

  1.   

    System.Text.Encoding encoding = System.Text.Encoding.UTF8;
      // Read string from binary file with UTF8 encoding
      byte[] buffer = new byte[30];
      binary_file.Read(buffer, 0, 30);
      return encoding.GetString(buffer);
    不同编码用不同的Encoding
      

  2.   

    我这个字符串没有保存到文件里,是在内存里的呀,没办法用BinaryReader了
      

  3.   

    读不读文件与此无关,这段代码只是告诉你如何通过一个byte[]转为string而已
      

  4.   

    可是我的二进制“01010001010100001001”也保存在string里了呀?不要意思,我比较笨
      

  5.   

    我的不是byte[],我的数据是“0101010101010101”这种格式的字符串
      

  6.   

    先把这种字符转为byte[]
    k=0;
    byte[] bArray = new byte[str.length%8]
    for( int i=0 ; i<str.length ; i+=8 )
    {
      str1 = str.substring(i,i+8);
      bArray[k] =  Convert.ToByte(str1,2);
      k++;
    }
      

  7.   

    sorry str1 = str.substring( i , 8 )
      

  8.   

    byte b=Convert.ToByte("1000",2);
    返回结果是b=8
    做一个循环即可.
      

  9.   

    byte[] bArray = new byte[str.length%8]
    为什么不是
    byte[] bArray = new byte[str.length*8]
    ??
    请教.
      

  10.   

    str1 = str.substring( i , 8 )
    当str="0000001" 字符串不是8的整数时.会直接挂掉的.
      

  11.   

    hdt: 你的思想我明白.
    我想要经过高位补零,应该可以按照不同的编码得到字符串了吧.