Pregunta Cómo convertir la matriz de bytes a la cadena [duplicar]


Esta pregunta ya tiene una respuesta aquí:

Creé una matriz de bytes con dos cadenas. ¿Cómo convierto una matriz de bytes en cadenas?

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

Quiero convertir result a cuerdas. Puedo hacerlo usando BinaryReader. Pero no puedo usar BinaryReader (no es compatible).


516
2017-07-25 16:39


origen


Respuestas:


Dependiendo de la codificación que desee utilizar:

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

861
2017-07-25 16:41



Suponiendo que está utilizando la codificación 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);

159
2017-07-25 16:55



Puede hacerlo sin tener que lidiar con la codificación mediante el uso de BlockCopy:

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

23
2017-12-15 20:36



Para convertir el byte [] en cadena [], simplemente use la línea a continuación.

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

5
2018-05-22 12:31



Una opción alternativa es:

string convert = "This is the string to be converted";
convert.CopyTo(0, buffer, 0, convert.length);

Ver String.CopyTo (MSDN).


-9
2017-12-15 20:11