Seite 1 von 1

Probleme mit einem QString ?

Verfasst: 31. Dezember 2008 19:51
von Treehouse
Hallo zusammen,

ich arbeite gerade an einem kleinen Email tool und dabei bin ich auf folgendes Problem gestossen. Wenn ich eine Serverabfrage starte und diese mir Header Informationen von einer Mail holen soll, werden die Daten in einem QString Object verwaltet. Nun habe ich z.b das Problem das manche Betreffzeilen nicht richtig dargestellt werden. Hier mal ein Beispiel:
Subject: [arch-general] =?iso-8859-15?q?=5Baur-general=5D_the_future_of_em?=
=?iso-8859-15?q?pathy=2C_libtelepathy=2E=2E?=
( Bemerkung: Das ist ein Betreff aus einer öffentlichen Maillingliste ich hoffe das ich jetzt gegen kein Gesetzt verstoße. Sollte das der Fall sein bitte ich um einen kleinen Hinweis!. Ich werde dann den Betreff unverzüglich wieder rausnehmen.)

Nun scheint es ja so zu sein das das QString object nicht den erforderten Codec besitzt, zumindest meine ich das so verstanden zu haben aus dem Brei. :roll: Ist es nun irgendwie möglich festzustellen welches Codec benötigt wird und dann jeweils das Objekt dynamisch anpassen?

Ich wäre für einen kleine Tip sehr dankbar.

Gruß
Treehouse

Verfasst: 31. Dezember 2008 21:06
von upsala
Das hat nichts mit QString zu tun. Sondern etwas mit Zeichenkodierungen in E-Mails.

Verfasst: 31. Dezember 2008 22:12
von Treehouse
upsala hat geschrieben:Das hat nichts mit QString zu tun. Sondern etwas mit Zeichenkodierungen in E-Mails.
also kann ich darauf keinen Einfluss nehmen?

Verfasst: 1. Januar 2009 01:38
von dontinelli
Doch. du musst einfach die Kodierung der Konvention entsprechend entschlüssen (und bei deinen zu versendenden Mails nach Möglichkeit verschlüsseln, damit der Empfänger nicht Probleme mit den Umlauten etc. bekommt). Google kann dir dabei sicher weiter helfen, hat aber nichts mit Qt zu tun.

Verfasst: 1. Januar 2009 02:10
von Treehouse
dontinelli hat geschrieben:Doch. du musst einfach die Kodierung der Konvention entsprechend entschlüssen (und bei deinen zu versendenden Mails nach Möglichkeit verschlüsseln, damit der Empfänger nicht Probleme mit den Umlauten etc. bekommt). Google kann dir dabei sicher weiter helfen, hat aber nichts mit Qt zu tun.
Ohne jetzt das du meinst ich bin zu faul zum suchen. Aber mal im ernst wie macht man sowas denn und wonach muss ich denn bei Google suchen damit ich raus bekomme wie man das macht? Hoffentlich klingt die Frage jetzt nicht schrecklich dumm, aber ich muss ehrlich gestehen das ich jetzt nicht wirklich verstehe, wie ich diese Konventionen einhalte. Mit anderen Worten wie ich das QString zu verstehen gebe, das die Zeichen richtig dargestellt werden.

Verfasst: 1. Januar 2009 09:07
von franzf
In der Annahme, dass die im Mail-Header angegebene Codierung korrekt ist, musst du diese extrahieren (per QRegExp), und dann mittels QTextCodec (schau dir einfach das erste Beispiel in der Doku an) in Unicode umwandeln.

Verfasst: 1. Januar 2009 10:05
von dontinelli
Plus davor ev. mit Base64 oder Quoted-printable encoden. Suche mal nach MIME Mail oder ähnlichem. Dein Beispiel ist z.B. in quoted-printable kodiert, das siehst du am "q" zwischen den Fragezeichen direkt nach dem Textcodec.

Verfasst: 1. Januar 2009 10:52
von Treehouse
Ahh ok vielen dank euch beiden. Ich werde mir das mal durchlesen. Ansonsten weiß ich ja wo ich fragen kann :wink:

Verfasst: 1. Januar 2009 11:22
von Treehouse
dontinelli hat geschrieben:Plus davor ev. mit Base64 oder Quoted-printable encoden.
Ich muss noch mal kurz was fragen... :roll:
Gibt es eine Klasse oder Funktion in Qt4 die sowas unterstützt? Also Base64 habe ich gefunden aber das "Quoted-printable" scheint so ein Fall für sich zu sein.

Verfasst: 1. Januar 2009 14:12
von dontinelli
Nein, gibt es meines Wissens nicht. Ist aber keine Hexerei, das selber zusammenzustiefeln, wenn du dir den Aufbau angeschaut hast.