He creado un servicio web que devuelve un (binario) de archivo. Por desgracia, no puedo utilizar el byte [], así que tengo que convertir la matriz de bytes en una cadena.
¿Qué puedo hacer por el momento es la siguiente (pero no de trabajo):

Convertir el archivo en cadena:

byte[] arr = File.ReadAllBytes(fileName);
System.Text.UnicodeEncoding enc = new System.Text.UnicodeEncoding();  
string fileAsString = enc.GetString(arr);  

Para comprobar si esto funciona correctamente, puedo convertir de nuevo a través de:

System.Text.UnicodeEncoding enc = new System.Text.UnicodeEncoding();
byte[] file = enc.GetBytes(fileAsString);

Pero al final, el original de la matriz de bytes y la matriz de bytes creados a partir de la cadena no son iguales. ¿Tengo que utilizar otro método para leer el archivo en una matriz de bytes?

1 Comentario

  1. 8

    Uso Convertir.ToBase64String para convertir a texto, y Convertir.FromBase64String para convertir de nuevo.

    Encoding se utiliza para convertir de texto a una representación binaria, y de un representación binaria de texto volver al texto de nuevo. En este caso usted no tiene una representación binaria de texto – sólo tienes datos binarios arbitrarios… así que Encoding es inapropiado. Incluso si utiliza una codificación, que puede «especie de» manejar datos binarios (por ejemplo, ISO Latin 1) usted encontrará que muchas formas de transmitir el texto se producirá cuando usted tiene los caracteres de control, etc.

    La codificación Base64 le dará texto que se acaba de ASCII, y mucho más fáciles de manejar.

    • Gracias, funciona de la manera que debería!

Dejar respuesta

Please enter your comment!
Please enter your name here