首页 文章

如何将字节数组转换为字符串[duplicate]

提问于
浏览
558

这个问题在这里已有答案:

我用两个字符串创建了一个字节数组 . 如何将字节数组转换为字符串?

var binWriter = new BinaryWriter(new MemoryStream());
binWriter.Write("value1");
binWriter.Write("value2");
binWriter.Seek(0, SeekOrigin.Begin);

byte[] result = reader.ReadBytes((int)binWriter.BaseStream.Length);

我想将 result 转换为字符串 . 我可以用 BinaryReader 来做 . 但我不能使用 BinaryReader (它不支持) .

5 回答

  • -9

    另一种选择是:

    string convert = "This is the string to be converted";
    convert.CopyTo(0, buffer, 0, convert.length);
    

    String.CopyTo(MSDN) .

  • 191

    假设您使用的是UTF-8编码:

    string convert = "This is the string to be converted";
    
    // From string to byte array
    byte[] buffer = System.Text.Encoding.UTF8.GetBytes(convert);
    
    // From byte array to string
    string s = System.Text.Encoding.UTF8.GetString(buffer, 0, buffer.Length);
    
  • 924

    您可以使用BlockCopy执行此操作而无需处理编码:

    char[] chars = new char[bytes.Length / sizeof(char)];
    System.Buffer.BlockCopy(bytes, 0, chars, 0, bytes.Length);
    string str = new string(chars);
    
  • 27

    要将byte []转换为string [],只需使用以下行 .

    byte[] fileData; // Some byte array
    //Convert byte[] to string[]
    var table = (Encoding.Default.GetString(
                     fileData, 
                     0, 
                     fileData.Length - 1)).Split(new string[] { "\r\n", "\r", "\n" },
                                                 StringSplitOptions.None);
    
  • 7

    根据您要使用的编码:

    var str = System.Text.Encoding.Default.GetString(result);
    

相关问题