c# .net file-upload bitconverter

c# - Byte[] a ASCII



.net file-upload (5)

Como alternativa a la lectura de datos de una transmisión a una matriz de bytes, puede dejar que la infraestructura maneje todo y simplemente usar una configuración de StreamReader con una codificación ASCII para leer en la cadena. De esta forma, no tendrá que preocuparse por obtener el tamaño de búfer adecuado o tamaños de datos más grandes.

using (var reader = new StreamReader(stream, Encoding.ASCII)) { string theString = reader.ReadToEnd(); // do something with theString }

Recibí el contenido de un archivo de texto devuelto en valores binarios:

Byte[] buf = new Byte[size]; stream = File.InputStream; stream.Read(buf, 0, size);

¿Cómo puedo convertir esto a ASCII?


Puedes usar:

System.Text.Encoding.ASCII.GetString(buf);

Pero a veces obtendrás un número raro en lugar de la cadena que deseas. En ese caso, su cadena original puede tener algún carácter hexadecimal cuando la vea. Si es el caso, puede intentar esto:

System.Text.Encoding.UTF8.GetString(buf);

O como último recurso:

System.Text.Encoding.Default.GetString(bytearray);



Método Encoding.GetString (Byte []) convierte bytes a una cadena.

Cuando se reemplaza en una clase derivada, decodifica todos los bytes del conjunto de bytes especificado en una cadena.

Espacio de nombres : System.Text
Asamblea : mscorlib (en mscorlib.dll)

Sintaxis

public virtual string GetString(byte[] bytes)

Parámetros

bytes Type: System.Byte[] The byte array containing the sequence of bytes to decode.

Valor de retorno

Tipo : System.String
Una cadena que contiene los resultados de la decodificación de la secuencia de bytes especificada.

Excepciones

ArgumentException - The byte array contains invalid Unicode code points. ArgumentNullException - bytes is null. DecoderFallbackException - A fallback occurred (see Character Encoding in the .NET Framework for complete explanation) or DecoderFallback is set to DecoderExceptionFallback.

Observaciones

Si los datos a convertir están disponibles solo en bloques secuenciales (como datos leídos de un flujo) o si la cantidad de datos es tan grande que debe dividirse en bloques más pequeños, la aplicación debe usar el Decoder o el Encoder proporcionado mediante el método GetDecoder o el método GetEncoder, respectivamente, de una clase derivada.

Consulte las Observaciones en Codificación.Obtenga Caracteres para obtener más información sobre las técnicas y consideraciones de decodificación.


Encoding.ASCII.GetString(buf);