Kuinka muuntaa tavujoukko merkkijonoksi

Loin tavujoukon, jossa on kaksi merkkijonoa. Miten muunnan tavujoukon merkkijonoksi?

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

Haluan muuntaa tuloksen merkkijonoksi. Voisin tehdä sen käyttämällä BinaryReader, mutta en voi käyttää BinaryReader (sitä ei tueta).

Ratkaisu

Riippuen haluamastasi koodauksesta:

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

Olettaen, että käytät UTF-8-koodausta:

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);
Kommentit (4)

Voit tehdä sen ilman koodausta käyttämällä BlockCopy:

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