Convertir una Array de Bytes a string

25/08/2009 - 01:51 por ANT1 | Informe spam
Hola a todos.

Hacía mucho que no escribía por aquí, espero que aún quieran ayudarme.

Estoy trabajando en un proyecto personal en el que trabajo con
imágenes JPG. A la hora de acceder a los PropertyItems que tiene y
convertir, por ejemplo, el título del Array de Bytes que es a string
mediante:

private string ByteArrayToStr(byte[] bytes)
{
return System.Text.ASCIIEncoding.ASCII.GetString(bytes);
}

Me convierte el array pero aparecen un montón de '/0' insertados por
todo el string.
¿Por qué es esto?¿cómo lo puedo solucionar?

Gracias y un saludo

Preguntas similare

Leer las respuestas

#6 Juan Carlos Paramá
26/08/2009 - 15:55 | Informe spam
Hola,

No, si es unicode Base64 no puede funcionar. Base 64 es un sistema para
códificar bytes utilizando solo caracteres legibles (cada 2 bytes se crean
tres caracteres). Es el que se utiliza para enviar las imagenes en los
correos electronicos, por ejemplo. Tiene la ventana de que como utiliza los
caracteres ASCII estándar funciona en cualquier sistema sin realizar
conversiones de caracteres, pero no tiene nada que ver con unicode y sirve
para convertir cualquier serie de bytes.

Saludos,

Juan Carlos Paramá


"ANT1" escribió en el mensaje de noticias
news:
Gracias a todos.

El problema era que usaba Unicode, y no se cual usa por defecto el
código que usaba yo. Gracias a todos.

Respecto al ToBase64String, Henri, me temo que aquí no funciona, no
devuelve la información correcta.

Solo hay una cosa que supongo que será un byte de control, y es que al
final del string añade siempre un '/0'.

Seguiré trabajando en ello ahora y en la conversion inversa, ya
comentaré el resultado final para gente que le pueda resultar útil en
su momento.

De nuevo gracias a todos.
#7 Herni
26/08/2009 - 16:43 | Informe spam
On 26 ago, 15:39, ANT1 wrote:
Mostrar la cita
Ah. Había leído tu mensaje a los apurones. Pensé que te referías al
array de bytes
de toda la imagen no de una de sus propiedades.
#8 ANT1
28/08/2009 - 13:01 | Informe spam
Bueno, dejo por aquí los resultados de lo que he ido observando.

Ciertamente teníais rzón los que comentasteis lo de usar Unicode,
concretamente porque las propiedades a las que yo quería acceder están
así codificadas. Pero dentro de las propias propiedades se encuentran
varios tipos, por lo que hay que determinar cada propiedad de que tipo
es y en consecuencia decodificarla.

El tipo se identifica con la propiedad Type, un short. Se puden ver
los distinto valores que puede obtener en el MSDN
http://msdn.microsoft.com/es-es/lib....type.aspx

Esto lo había visto yo, pero mis conocimientos limitados a la causa no
me llevarón a pensar que para el 1 se usaba Unicode.

Espero que a cualquiera que pudiese tener esta duda en el futuro le
sea de ayuda todo esto. Los métodos de conversión... en los comentrios
anteriores aparecen varios, y existen muchos más que a fin de cuentas
son lo mismo pero accediendo por un sitio u otro. Para gustos los
colores :)

Ahora me pondré con la conversión inversa, de String a Byte[], y
posiblemente abra otro hilo con el tema.

Un saludo y gracias a todos.

P.D: Siento las faltas de ortografía, especialmente los acentos, pero
este teclado me está volviendo loco y como que lo ignoro.
Ads by Google
Search Busqueda sugerida