Encoding
-
Ich lade mit dieser Klasse Emails herunter.
Diese zerlegen ich dann und zeige sie an.Mit "text/plain" und "text/html" habe ich keine Probleme und bei "multipart/x" suche ich mir einfach die "text/x" Bereiche heraus,aber mit "text/plain;charset="iso-x" komme ich nicht weiter.Ich schaffe es nicht das die Sonderzeichen in diesen Mails richtig angezeigt werden.Hier ist der Code mit dem ich versuche den Text in das Charset zuconvertieren.if (mime_type.Contains("charset=\"")) { string charset = mime_type.Substring(mime_type.IndexOf("charset=\"") + 9); charset = charset.Substring(0, charset.IndexOf("\"")); Encoding dest_en = Encoding.GetEncoding(charset); Encoding src_en = Encoding.ASCII; body = dest_en.GetString(Encoding.Convert(src_en,dest_en,src_en.GetBytes(body))); }
-
Ich glaube die Konvertierungsrichtung ist falsch. In der Email steht das Charset, in dem die Email transportiert wird, nicht als was die Email angezeigt werden muss
Wobei ich mir auch nicht sicher bin, ob das Ziel-Encoding ASCII sein soll. Ich glaube bei .NET eher daran dass Default UTF-8 ist...
Encoding src_en = Encoding.GetEncoding(charset); Encoding dst_en = Encoding.UTF8; string unicode = dst_en.GetString( Encoding.Convert(src_en, dst_en, src_en.GetBytes(body)) );
-
Ich habe ASCII benutzt,weil die Pop3 Klasse ASCII benutzt wenn sie die EMail codiert.Vertauschen von dest_en und src_en bringt nichts.
-
Versuch mal als Codepage 1252 statt ASCII.
-
Wenn der string schon mit iso-8859-1 kodiert wäre,hätte ich woll kaum Probleme mit den Umlauten.