如何将字节数组转换为string

我用两个string创build了一个字节数组。 如何将字节数组转换为string?

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转换为string。 我可以用BinaryReader来做。 但我不能使用BinaryReader (它不支持)。

取决于你想使用的编码:

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

假设你正在使用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); 

你可以做到这一点,而不使用BlockCopy处理编码:

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

要将字节[]转换为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); 

另一种select是:

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

请参阅String.CopyTo (MSDN)。