Estoy usando una biblioteca llamada EXIFextractor para extraer información de metadatos de imágenes. Este lib en parte está usando System.Drawing.Imaging.PropertyItem para hacer todo el trabajo duro. Algunos de los datos en PropertyItem, como Detalles de la imagen, etcétera, se captan como una cadena ASCII almacenada en un byte [] de acuerdo con la documentación de Microsoft.C#: Convertir byte [] en cadena codificada en UTF8
Mi problema es que los caracteres internacionales (å, ä, ö, etcétera) se eliminan y reemplazan por questionmarks. Cuando depuro el código, es evidente que el byte [] es una representación de un UTF-8.
Me gustaría analizar el byte [] como una cadena UTF8, ¿cómo puedo hacer esto sin perder ninguna información en el proceso?
¡Gracias de antemano!
Actualización:
me ha pedido para proporcionar un fragmento de mi código:
El primer fragmento es de la clase que yo uso, es decir, los escrito por EXIFextractor.cs Asim Goheer
foreach(System.Drawing.Imaging.PropertyItem p in parr)
{
string v = "";
// ...
else if(p.Type == 0x2)
{
// string
v = ascii.GetString(p.Value);
}
Y este es mi código donde hago mi mejor esfuerzo para manejar t El resultado de lo anterior.
try {
EXIFextractor exif = new EXIFextractor(ref bmp, "");
object o;
if ((o = exif["Image Description"]) != null)
MediaFile.Description = Tools.UTF8Encode(o.ToString());
también he intentado un par de otras maneras de conseguir mi precioso å, ä, ö partir de los datos, pero nada parece hacer el truco. Estoy empezando a pensar que Hans Passant tiene razón sobre sus conclusiones en su respuesta a continuación.
Si la información se lee usando codificación ASCII, los caracteres que no sean ASCII no se leerán correctamente como consecuencia. Esta lectura de caracteres con codificación y luego escritura en una matriz de bytes no suena bien. ¿Puede vincular a la documentación que establece que este es el caso? –
Aquí está, si tengo permiso para publicar otro hipervínculo :) http://msdn.microsoft.com/en-us/library/system.drawing.imaging.propertyitem.type.aspx – dotmartin