我创建了一个带有两个字符串的字节数组。如何将字节数组转换为字符串?
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);