协慌网

登录 贡献 社区

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

我创建了一个带有两个字符串的字节数组。如何将字节数组转换为字符串?

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 (不支持)。

答案

根据您希望使用的编码:

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);