estoy probando BinaryFormatter para ver cómo se va a trabajar para mí y tengo una pregunta simple:BinaryFormatter con MemoryStream Pregunta
Al utilizarlo con la cadena HOLA, y convertir el MemoryStream a una matriz, que me da 29 dimensiones, con cinco de ellos que son los datos reales hacia el final de las dimensiones:
BinaryFormatter bf = new BinaryFormatter();
MemoryStream ms = new MemoryStream();
byte[] bytes;
string originalData = "HELLO";
bf.Serialize(ms, originalData);
ms.Seek(0, 0);
bytes = ms.ToArray();
vuelve
- bytes {Dimensions:[29]} byte[]
[0] 0 byte
[1] 1 byte
[2] 0 byte
[3] 0 byte
[4] 0 byte
[5] 255 byte
[6] 255 byte
[7] 255 byte
[8] 255 byte
[9] 1 byte
[10] 0 byte
[11] 0 byte
[12] 0 byte
[13] 0 byte
[14] 0 byte
[15] 0 byte
[16] 0 byte
[17] 6 byte
[18] 1 byte
[19] 0 byte
[20] 0 byte
[21] 0 byte
[22] 5 byte
[23] 72 byte
[24] 69 byte
[25] 76 byte
[26] 76 byte
[27] 79 byte
[28] 11 byte
¿hay una manera única para devolver el d ata codificado como bytes sin toda la información extraña?
Nota: el constructor de 'StreamWriter' crea internamente una instancia de' UTF8Encoding' hacer la conversión real de bytes Si todo lo que necesita es una matriz de bytes que corresponden a una cadena, entonces 'MemoryStream' y. 'TextWriter' no es en realidad la solución, son solo una forma fortuita de crear implícitamente la clase que proporciona la solución. Simplemente use' Encoding.UTF8.GetBytes' directamente - o utilice la clase de codificación correcta para la codificación de caracteres que necesite (UTF-8 es una buena opción predeterminada). –