Kā pārvērst baitu masīvu uz virkni

Es izveidoju baitu masīvu ar divām virknēm. Kā pārvērst baitu masīvu virknē?

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

Es gribu pārvērst rezultātu uz virkni. Es varētu to izdarīt, izmantojot BinaryReader, bet es nevaru izmantot BinaryReader (tas nav atbalstīts).

Risinājums

Atkarībā no vēlamās kodēšanas:

var str = System.Text.Encoding.Default.GetString(result);
Komentāri (8)

Pieņemot, ka izmantojat UTF-8 kodējumu:

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);
Komentāri (4)

To var izdarīt bez kodēšanas, izmantojot BlockCopy:

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