C#: die Konvertierung der byte [], um die UTF8-kodierten string

Benutze ich eine Bibliothek namens EXIFextractor zum extrahieren von Metadaten aus Bildern Informationen. Diese lib-Teil ist mit System.Zeichnung.Imaging.PropertyItem zu tun, all die harte Arbeit. Einige der Daten im PropertyItem, wie z.B. Bilder, Details usw. abgerufen werden als ASCII-string, gespeichert in einem byte [], gemäß der Microsoft-Dokumentation.

Mein problem ist, dass internationale Sonderzeichen (å, ä, ö, usw.) gelöscht und ersetzt durch Fragezeichen. Wenn ich Debuggen des Codes ist es offensichtlich, dass das byte[] ist eine Darstellung einer UTF-8.

Möchte ich analysieren, die byte[] als UTF8-string, wie kann ich dies tun, ohne dabei irgendwelche Informationen in den Prozess ein?

Vielen Dank im Voraus!


Update:

Wurde ich gebeten, ein snippet aus meinem code:

Der erste Ausschnitt ist aus der Klasse, die ich verwenden, nämlich die EXIFextractor.cs geschrieben von Asim Goheer

foreach( System.Drawing.Imaging.PropertyItem p in parr )
{
 string v = ""; 

                //...

 else if( p.Type == 0x2 )
 {
  //string     
  v = ascii.GetString(p.Value);
 }

Und das ist mein code, wo ich versuche mein bestes zu behandeln, die Ergebnisse der oben genannten.

                try {
  EXIFextractor exif = new EXIFextractor(ref bmp, "");
  object o;
                    if ((o = exif["Image Description"]) != null)
                        MediaFile.Description = Tools.UTF8Encode(o.ToString()); 

Habe ich auch versucht ein paar andere Wege, meine kostbare å, ä, ö, aus den Daten, aber nichts scheint den trick tun. Ich bin angefangen zu denken, Hans Passant ist Recht über seine Schlussfolgerungen in seiner Antwort weiter unten.

  • Wenn die information gelesen wird, verwenden Sie die ASCII-Kodierung, werden alle nicht-ASCII-Zeichen nicht korrekt gelesen werden als eine Folge. Das Lesen von Zeichen mit einer Codierung und dann das schreiben in ein byte-array klingt nicht richtig. Können Sie einen link auf die Dokumentation, die besagt das der Fall?
  • Hier ist es, wenn ich erlaubt werde, nach einer anderen hyperlink 🙂 msdn.microsoft.com/en-us/library/...
InformationsquelleAutor dotmartin | 2010-08-04
Schreibe einen Kommentar