Outlook 2003 kodiert falsch???
Donald
- html
0 Donald
Hallo,
ich habe ein AddIn, welches in Outlook die HTML Messages per Mail.HTMLBody ausliest. Ich tippe eine Mail mit ein paar deutschen Umlauten, und die Kodierung im Header lautet ISO-8859-1. Soweit so gut. Wenn ich jetzt noch zwei arabische Zeichen eintippe (zB ALT + 1588), dann wird das Zeichen angezeigt und die Kodierung wechselt im HTMLBody auf utf-8. Soweit ok, aber das ist, was dabei rauskommt:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7036.0">
<TITLE>Testmail umlaute HTML</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/rtf format -->
<P DIR=LTR><FONT SIZE=2 FACE="Arial">Das ist ein Testtext mit öäüÖÄÜß</FONT></P>
<P DIR=LTR><SPAN LANG="ar-sa"><FONT SIZE=2 FACE="Arial"><SPAN DIR=RTL>??</SPAN></FONT></SPAN><SPAN LANG="de"></SPAN></P>
</BODY>
</HTML>
Die Umlaute sind gar nicht UTF-8 kodiert (auch, wenn ich das im HEX Editor ansehe). Die sind immer noch mit je 1 Byte ISO kodiert. Und die Arabischen Zeichen sind ebenfalls mit nur jeweils einem Byte kodiert. Stattdessen wird ein <SPAN LANG="ar-sa"> verwendet. Wenn ich das HTML jetzt in einem Browser anzeige, kapiert der garnix und stellt es falsch dar. Erst wenn ich den manuell auf die Darstellung mit ISO 8859-1 zwinge, dann stimmt zumindest der deutsche Umlaute-Teil wieder.
Was passiert da? Ist das falsch oder hab ich es nicht verstanden? Wie gehe ich jetzt mit dem Kram um, denn ich muss den als HTML in einem iframe anzeigen... Das geht natürlich schief...
Donald
OK, Alarm zurück. VB speichert das einfach in ASCII statt in UTF-8. Interen arbeitet es mit Unicode, aber beim Speichern macht es einfach was anderes. Hab einen Weg über Windows-API gefunden um das als ByteArray nach UTF-8 zu konvertieren und dann zu speichern (WideCharToMultiByte).
Danke trotzdem!
Donald