web-dev-qa-db-fra.com

Comment convertir un tableau d'octets en chaîne

J'ai créé un tableau d'octets avec deux chaînes. Comment convertir un tableau d'octets en chaîne?

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

Je veux convertir result en chaîne. Je pourrais le faire en utilisant BinaryReader, mais je ne peux pas utiliser BinaryReader (il n'est pas supporté).

625
Oksana

En fonction du codage que vous souhaitez utiliser:

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

En supposant que vous utilisez le codage 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);
231
Andy0708

Vous pouvez le faire sans traiter l'encodage en utilisant BlockCopy :

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

Pour convertir l'octet [] en chaîne [], utilisez simplement la ligne ci-dessous.

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);
8
Mansoor Ali