una tipos extraer ejemplos datos convert conversion caracteres cadena array c#

tipos - C#: Convertir la matriz de bytes en una cadena e imprimirla en la consola



string c# ejemplos (5)

public void parse_table(BinaryReader inFile) { byte[] idstring = inFile.ReadBytes(6); Console.WriteLine(Convert.ToString(idstring)); }

Es un fragmento simple: lea los primeros 6 bytes del archivo y conviértalo en una cadena.

Sin embargo, la consola muestra System.Byte[] .

Tal vez estoy usando la clase incorrecta para la conversión. ¿Qué debería estar usando? Eventualmente analizará los nombres de los archivos codificados en UTF-8, y estoy planeando usar el mismo método para leer todos los nombres de los archivos.


En realidad es:

Console.WriteLine(Encoding.Default.GetString(value));

o para UTF-8 específicamente:

Console.WriteLine(Encoding.UTF8.GetString(value));


Esta es solo una versión actualizada del código de Jesse Webbs que no agrega el carácter final innecesario.

public static string PrintBytes(this byte[] byteArray) { var sb = new StringBuilder("new byte[] { "); for(var i = 0; i < byteArray.Length;i++) { var b = byteArray[i]; sb.Append(b); if (i < byteArray.Length -1) { sb.Append(", "); } } sb.Append(" }"); return sb.ToString(); }

El resultado de este método sería:

new byte[] { 48, ... 135, 31, 178, 7, 157 }


Estaba en una situación en la que tenía una matriz de bytes firmada ( sbyte[] ) como entrada a una clase de prueba y quería reemplazarla por una matriz de bytes normal ( byte[] ) para simplificar. Llegué aquí de una búsqueda en Google, pero la respuesta de Tom no fue útil para mí.

Escribí un método de ayuda para imprimir el inicializador de un byte[] dado byte[] :

public void PrintByteArray(byte[] bytes) { var sb = new StringBuilder("new byte[] { "); foreach (var b in bytes) { sb.Append(b + ", "); } sb.Append("}"); Console.WriteLine(sb.ToString()); }

Puedes usarlo así:

var signedBytes = new sbyte[] { 1, 2, 3, -1, -2, -3, 127, -128, 0, }; var unsignedBytes = UnsignedBytesFromSignedBytes(signedBytes); PrintByteArray(unsignedBytes); // output: // new byte[] { 1, 2, 3, 255, 254, 253, 127, 128, 0, }

La salida es válida C # que luego puede simplemente copiarse en su código.

Y para completar, aquí está el método UnsignedBytesFromSignedBytes :

// http://.com/a/829994/346561 public static byte[] UnsignedBytesFromSignedBytes(sbyte[] signed) { var unsigned = new byte[signed.Length]; Buffer.BlockCopy(signed, 0, unsigned, 0, signed.Length); return unsigned; }


He usado este código simple en mi base de código:

static public string ToReadableByteArray(byte[] bytes) { return string.Join(", ", bytes); }

Usar:

Console.WriteLine(ToReadableByteArray(bytes));


byte[] bytes = { 1,2,3,4 }; string stringByte= BitConverter.ToString(bytes);