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

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

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

1464139 次浏览

根据您希望使用的编码:

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

假设您使用UTF-8编码:

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

您可以使用区块复制在不处理编码的情况下做到这一点:

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

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