AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

=E2=80=9E umwandeln

Ein Thema von josefkoller · begonnen am 11. Feb 2014 · letzter Beitrag vom 12. Feb 2014
Antwort Antwort
josefkoller

Registriert seit: 22. Okt 2012
49 Beiträge
 
#1

AW: =E2=80=9E umwandeln

  Alt 11. Feb 2014, 20:34
Hi,

naja, wenn's so einfach wäre:

in synapse hab ich es schon probiert:

Der Header sieht so aus:

Delphi-Quellcode:

--001a11c34908e0619204f16fdbc2
Content-Type: multipart/alternative; boundary=001a11c34908e0619004f16fdbc1

--001a11c34908e0619004f16fdbc1
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Mit TPop3send->TMimeMess hab ich auch alles Mögliche eingestellt.

mess.DecodeMessage;
mess.MessagePart.DecomposeParts;
// mess.MessagePart.CharsetCode := UTF_8;
[/DELPHI]

Alles mal vor ..decode, dann nach ...decode, dann mit ...UTF-8, dann ohne, dann das gleiche nochmals bei den einzelnen Parts usw. Auch mit anderen Zeichensätzen, ISO_....., CP_....

Diese HEX-Werte sind immer drin.

Soweit ich das sehe, ist diese Beispielmail ein paar Mal weitergeleitet worden. (Re:Re

Auch die werte für dasselbe zeichen sind unterschiedlich: '=C3=BC', 'ü', und '=FC', 'ü',...

Wenn das synapse umwandeln kann, kannst du mir auch sagen, wie ......

Ich hab's mal mit replace versucht, aber es gibt so viele Varianten, daß es sinnlos ist, sie alle zu finden und zu ersetzen.

Danke

Josef
  Mit Zitat antworten Zitat
josefkoller

Registriert seit: 22. Okt 2012
49 Beiträge
 
#3

AW: =E2=80=9E umwandeln

  Alt 12. Feb 2014, 00:30
Hallo,

ich such mir da Deinen in der synachar.pas ab und in der synacode sind auch noch "seitenweise" Funktionen.

Danke für den Hinweis. Mit "DecodeQuotedPrintable" schaut's schon ganz manierlich aus.

Nur.... bei einer Mail, auch mit Re:Re: ist ein Mac Rechner dabei.

Da sind jetzt "???" statt der ü,ö, usw.

Wenn ich das dann versuche umzuwandeln, stehen bei den Texten der anderen Rechner wieder "falsche" Zeichen.

Es ist zum Verzweifeln mit diesen Zeichensätzen.

vielleicht auch dazu noch ein Tipp??

Danke.

Josef
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.340 Beiträge
 
Delphi 12 Athens
 
#4

AW: =E2=80=9E umwandeln

  Alt 12. Feb 2014, 02:28
Zitat:
Re:Re:
Irgendeines der Programme hat Mist gebaut, die Codierung geschrottet und jetzt bist du am Arsch.



Entweder du versuchst das manuell zu übersetzen und das bezieht sich vorallem auf das UTF-8, welches du Zeichen für Zeichen selber übersetzen mußt.
Du dekodiertst also erst das Quoted-Printable und machts den Rest manuell.
Die Zeichen, welche sich übersetzen lassen (welche also der UTF-8-Codierung entsprechen), werden übersetzt und die Restlichen werden unverändert übernommen (billig von AnsiChar nach Char gekastet).

Oder du nutzt das, was funktioniert. (mir ist noch keine UTF-8-Dekodierfunktion untergekommen, welche Fehler versucht zu beheben)
Das Quoted-Printable selber scheint ja korrekt zu sein, womit du das erstmal auf den Text anwenden kannst.
Könntest du UTF8ToString verwenden und wenn das das UTF-8 dekodiert, dann wird das genommen und ansonsten lässt du den Schott-String so, wie er ist.
Delphi-Quellcode:
S := UTF8ToString(MyText);
if S = 'then
  S := MyText;
Oder beim UTF-8 wird eben fehlerignorierend übersetzt.
MSDN-Library durchsuchenMultiByteToWideChar (wird vermutlich auch von den getesteten Funktionen verwendet), ersetzt "ungültige" Zeichen, oder Zeichen, welche nicht in das Zielformat passen, jeweils in ein "?".
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
josefkoller

Registriert seit: 22. Okt 2012
49 Beiträge
 
#5

AW: =E2=80=9E umwandeln

  Alt 12. Feb 2014, 09:36
Hallo,

ich hole mir für meine Probiererei Mails von meinem Mailserver.

Ich hab jetzt besagte Mail mal in meinem Thunderbird gesucht.

Das Blöde ist, daß dort auch besagte Fragezeichen gefunden und interpretiert werden.
Die Thunderbird Leute müssen also irgendeine Funktionen benutzen, die sowas findet.

Der Quelltext kommt bei beiden (also bei meinem pop3 und in Thunderbird) gleich an.

In Thunderbird Quelltext6 steht z. B. =D6 für "Ö", bei mir auch.

Bei Thunderbird kommt dann in der Ansicht ein "Ö" raus, bei mir ein "?".

Die bei Thunderbird bekommen es hin und ich nicht. Das ärgert mich.

Vielleicht doch noch eine Idee??

Danke

Josef

Und noch was:
Der Sender ist ein MacRechner. Das Sonderzeichen dieser Mail für "ä" lautet: =E4. In den anderen Quelltexten steht für ä, =C3=A4.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.340 Beiträge
 
Delphi 12 Athens
 
#6

AW: =E2=80=9E umwandeln

  Alt 12. Feb 2014, 12:25
Ein einzelnes =D6 ist nunmal kein gültiges UTF-8-Zeichen

Hat der Thunderbird da eventuell eine andere Codierung angegeben?
#$D6 bzw. #214 ist das Ö in den meisten deutschen ANSI-Kodierungen.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#7

AW: =E2=80=9E umwandeln

  Alt 12. Feb 2014, 13:04
Mit sowas hatte ich auch schon mal zu kämpfen, allerdings in PHP. Es scheint bei Mails leider häufiger vorzukommen, dass sie falsch enkodiert sind, als umgekehrt. Es bleibt einem kaum etwas anderes übrig, als mit Heuristiken zu arbeiten (bzw. entsprechende Bibliotheken zu verwenden).
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.340 Beiträge
 
Delphi 12 Athens
 
#8

AW: =E2=80=9E umwandeln

  Alt 11. Feb 2014, 22:49
Auch die werte für dasselbe zeichen sind unterschiedlich: '=C3=BC', 'ü', und '=FC', 'ü',...
Dann ist da definitiv was im Arsch.

=C3=BC könnte das UTF-8-ü sein (eventuell auch UCS-2, aber ich glaub eher an UTF-8 .... hab das jetzt nicht nachgerechnet),
aber im UTF-8, im ANSI und sonstwie im Unicode ist das =FC total falsch.
In den deutschen Codepages ist das ü meistens ein =81.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz