Einzelnen Beitrag anzeigen

MicAlter

Registriert seit: 29. Aug 2007
12 Beiträge
 
#1

IdPOP3, UTF-8 Charset, Umlaute äöü

  Alt 29. Apr 2009, 13:44
Hallo zusammen,

das Thema ist ja schon bekannt: EMail empfangen, Inhalt im UTF-8 Format, also Deutsche Umlaute entsprechend dem UTF-8 umgesetzt. Wie kriege ich dieses Ding nun nach ISO-8859-1 konvertiert???

Vielleicht habe ich ja auch nur ein Brett vor dem Kopf

Vorweg: Ich nutze Delphi 5 Enterprise mit Indy 9.0.18.

So sieht z.B. meine Nachricht aus:
Code:
Diese Mail wird im Unicode-Format (UTF-8) versandt.
 
Hier die deutschen Umlaute: ä ö ü ß Ä Ö Ü
Wenn ich die Mail nun mit meinem Programm auslese und den Inhalt wegschreibe, dann sieht das Ganze so aus:

Delphi-Quellcode:
POP.RetrieveRaw(1,MyStringList);
MyStringList.SaveToFile( 'c:\mail.txt' );
Code:
Received: from [127.0.0.1] by MA_NB_XP
  (ArGoSoft Mail Server Freeware, Version 1.8 (1.8.8.0)); Wed, 29 Apr 2009 13:00:20 +0200
From: "MicAlter" <micalter@yourdomain.de>
To: <micalter@yourdomain.de>
Subject: Testmail in UTF-8
Date: Wed, 29 Apr 2009 13:00:19 +0200
Message-ID: <7B3870150C1543989DC4E37A88602888@MANBXP>
MIME-Version: 1.0
Content-Type: multipart/alternative;
   boundary="----=_NextPart_000_0010_01C9C8CA.73884830"
X-Priority: 3 (Normal)
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook, Build 10.0.6838
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579
Thread-Index: AcnIuOZp+T8pFEfISG+OaggCXaT6uQAAMDWw
Importance: Normal

This is a multi-part message in MIME format.

------=_NextPart_000_0010_01C9C8CA.73884830
Content-Type: text/plain;
   charset="utf-8"
Content-Transfer-Encoding: quoted-printable

Diese Mail wird im Unicode-Format (UTF-8) versandt.
=20
Hier die deutschen Umlaute: =C3=A4 =C3=B6 =C3=BC =C3=9F =C3=84 =C3=96 =
=C3=9C

------=_NextPart_000_0010_01C9C8CA.73884830
Content-Type: text/html;
   charset="utf-8"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Dutf-8">
<TITLE>Nachricht</TITLE>

<META content=3D"MSHTML 6.00.6000.16825" name=3DGENERATOR></HEAD>
<BODY>
<DIV>
<DIV class=3DOutlookMessageHeader lang=3Dde dir=3Dltr align=3Dleft><FONT =
face=3DTahoma=20
size=3D2></FONT></DIV><FONT face=3DArial size=3D2><SPAN =
class=3D983435310-29042009>Diese=20
Mail wird im Unicode-Format (UTF-8) versandt.</SPAN></FONT></DIV>
<DIV><FONT face=3DArial size=3D2><SPAN=20
class=3D983435310-29042009></SPAN></FONT></DIV>
<DIV><FONT face=3DArial size=3D2><SPAN class=3D983435310-29042009>Hier =
die deutschen=20
Umlaute: =C3=A4 =C3=B6 =C3=BC =C3=9F =C3=84 =C3=96 =
=C3=9C</SPAN></FONT></DIV></BODY></HTML>

------=_NextPart_000_0010_01C9C8CA.73884830--
Wie ihr sehen könnt, werden die Umlaute nun wie folgt umgesetzt:
ä ^= =C3=A4
ö ^= =C3=B6
ü ^= =C3=BC
ß ^= =C3=9F
Ä ^= =C3=84
Ö ^= =C3=96
Ü ^= =C3=9C

So "richtiges" UTF-8 ist das doch nicht mehr, da der Body intern, also innerhalb des TIdPOP3-Objektes, als String vorliegt, oder?
Wie kann ich dieses nun korrekt umsetzen - natürlich ohne StringReplace?


Vielen Dank für die Unterstützung,
MicAlter
  Mit Zitat antworten Zitat