Umlaute in Überschrift (Bretreff) popfetcher

Hier können Probleme und alles andere in Deutscher Sprache gelöst werden.
gto
Posts: 2
Joined: Sun May 14, 2006 8:21 pm

Umlaute in Überschrift (Bretreff) popfetcher

Post by gto »

Hallo,

wir erstellen gerade einen neuen blog für unterwegs. Dazu haben wir den popfetcher installiert. Aber immer wenn ein Umlaut in einer Überschrift ist, dann wird der Code reklamiert. Ich bin nun nicht gerade die allerhellste Leuchte, darum bin ich euch echt dankbar wenn Ihr eine Lösung findet.

Anschauen kann man das Disaster unter der Adresse:

http://pauli-racing-team.de/blog/

Gruß, gto
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: Umlaute in Überschrift (Bretreff) popfetcher

Post by garvinhicking »

Hi!

In früheren Versionen des Popfetcher Plugins wurden die Betreffzeilen nicht dekodiert; die aktuellste Version (ca. 2 Wochen alt) hat das jedoch behoben. Lade die Dir bitte mal von spartacus.s9y.org runter, dann sollte es klappen!

Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
gto
Posts: 2
Joined: Sun May 14, 2006 8:21 pm

Post by gto »

Servus,

nun geht's. Und ich war mir fast sicher dass es die aktuelle Version ist. Na prima. Vielen Dank für diesen aufschlussreichen Hinweis :-)

Gruß, gto
john
Regular
Posts: 7
Joined: Tue May 30, 2006 11:14 pm

POPfetcher umlaute

Post by john »

hallo
hänge hier die frage an ein bereits gelöstes posting. da es bei mir jedoch noch nicht gelöst scheint, hoffe ich es ist so io.
--> in meinem blog werden die umlaute aus dem body des mails reklamiert. für wird zu f?r. hat mir da jemand einen rat?

ich habe:
Firefox/1.5.0.4
POPfetcher v1.12
Serendipity 0.9.1
PHP 5.0.4

lieber gruss von john
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: POPfetcher umlaute

Post by garvinhicking »

Hi john!

Kannst Du mal eine Beispielmail mit komplettem Header hier posten? Oder alternativ mal eine an mich schreiben so wie Du sie an dein blog schickst? (benutze garvin at s9y dot org)

Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
john
Regular
Posts: 7
Joined: Tue May 30, 2006 11:14 pm

Post by john »

Hallo Garvin

In meinem Blog steht nun der per 'POPfetcher' eingespiesene Eintrag.

und hier das dafür verwendete Mail. ich benutze Thunderbird und habe HTML für das erstellen von Mails deaktiviert.

Code: Select all

From - Mon Jun 19 13:38:48 2006
X-Mozilla-Status: 0001
X-Mozilla-Status2: 00800000
Message-ID: <44968CC4.3070901@ebmnet.ch>
Date: Mon, 19 Jun 2006 13:38:44 +0200
From: "john b. rauch" <john.rauch@ebmnet.ch>
Reply-To:  john.rauch@ebmnet.ch
User-Agent: Thunderbird 1.5.0.4 (Windows/20060516)
MIME-Version: 1.0
To:  johnblog@optimystic.ch
Subject: testeintrag =?ISO-8859-15?Q?f=FCr_garvin?=
Content-Type: text/plain; charset=ISO-8859-15; format=flowed
Content-Transfer-Encoding: 8bit

hallo garvin
<br />
danke, dass du mir hilfts herauszufinden, was da mit den umlauten los 
ist. worte wie wälder, wörter und mühsam werden bei mir nicht richtig 
angezeigt. mein mailprogramm:
<br />
Thunderbird, Version 1.5.0.4
<br />
vielen dank für deine hilfe und gruss von john
lieber gruss von john
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Hi!

Bitte probiere mal folgendes; öffne die Datei plugins/serendipity_event_popfetcher/serendipity_event_popfetcher.php und suche dort in Zeile 363 nach der function decode.

Ersetze diesen Block durch folgendes:

Code: Select all

    function decode($string, $charset) {
        if (strtolower($charset == 'utf-8)' && strtolower(LANG_CHARSET) != $charset) {
            return utf8_decode($string);
        } elseif (strtolower(LANG_CHARSET) == 'utf-8' && strtolower($charset) != 'utf-8') {
            return utf8_encode($string);
        } else {
            return $string;
        }
    }
Und schicke dann mal eine neue E-Mail?

Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
john
Regular
Posts: 7
Joined: Tue May 30, 2006 11:14 pm

white screen

Post by john »

Hallo Garvin

- Konnte deinen Code nicht einpflegen, da ich danach im Front- und Backend einen 'white screen' hatte.

Man hast Du mich aber erschreckt. Als ich nach Deiner Anleitung gemodet hab, hatte ich danach 'white screen' dies im Front- und Backend. Zuerst brachte ich es gar nicht mit der Änderung in Zusammenhang, da ich am morgen alle Templates per FTP neu hochgeladen hatte und davon ausging, dass ich da wohl einen bock im root/templates_c verursacht hätte. Erst nachdem ich die oben angegebene Block-Änderung wieder rückgängig machte konnte ich meinen Blog wieder sehen und komme nun auch wieder in den Administrationsbereich.

Da hab ich also wohl doch was schlimmeres am kochen. Nur was könnte es sein?

lieber gruss von john
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: white screen

Post by garvinhicking »

Hi!

Oh wei, das tut mir furchtbar leid. In der Tat war in dem Code ein schreibfehler der beim Copy+Paste reinkam. Sorry!

Richtig muss es so aussehen:

Code: Select all

    function decode($string, $charset) {
        if (strtolower($charset) == 'utf-8' && strtolower(LANG_CHARSET) != $charset) {
            return utf8_decode($string);
        } elseif (strtolower(LANG_CHARSET) == 'utf-8' && strtolower($charset) != 'utf-8') {
            return utf8_encode($string);
        } else {
            return $string;
        }
    }
Sorry für das Problem :)

Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
john
Regular
Posts: 7
Joined: Tue May 30, 2006 11:14 pm

Post by john »

Hallo Garvin
garvinhicking wrote:Oh wei, das tut mir furchtbar leid
Ach was nimms locker :D denn nur so lernen Deppen-DAU's wie ich wie der hase läuft oder der pixel rollt. Ich jedenfalls hab wieder viel rumdoktern und ausprobieren können ... auf den Spuren der Cracks!

Nun habe ich den neuen Code eingepflegt und die Umlaute werden im Body korrekt umgesetzt. Jedoch nicht im Subjekt (Betreffszeile) welche ja Titel des Eintrages wird. Aber das macht nichts und muss ich auch nicht lösen können, denn ich hab ja Phantasie genug um die Titel so zu wählen, dass ich auf Umlaute verzichten kann.

Falls du noch Zeit hast. An was lag den der Fehler. Hast Du mit deinem Schnipsel meinen unüblichen Weg angepasst oder ist was im POPfetcher wrong? Jetzt muss ich nur noch rauskriegen, weshalb die neuen Einträge welche ich per Mail poste erst im Blog aufgeführt werden, nachdem ich im Administrationsbereich den Menupunkt POPfetcher aufgemacht habe. Aber dies werde ich bestimmt bald rauskriegen, denn dafür gibts ja die Suche und dabei stösst man immer auch auf spannendes, welches auch abseits des aktuellen Problems interressiert.

Vielen Dank für Deine Hilfe und ein lieber Gruss aus CH-Basel von John
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Hi!

Dann bin ich ja beruhigt, dass Du das so positiv aufnimmst. :)

Das Problem mit dem Betreff ist der, dass der Zeichensatz des Betreffs einer E-Mail schwieriger herauszufinden ist als der des Texts; für Texte gilt der jeweilige Content-Type des Attachments, ein Betreff kann aber individuelle Kodierung enthalten. Daher ist es für mich derzeit etwas viel Aufwand, das herauszufinden. Wenn Du daher ohne Umlaute dort leben kannst, wäre das toll für mich. *g*

Das Problem lag an folgendem: Dein Blog nutzt den UTF-8 Zeichensatz, während dein E-Mail Programm Mails mit ISO-8859-1 Zeichensatz abschickt.

Die Sonderzeichen beider Zeichensätze sind unterschiedlich kodiert, so dass ien Sonderzeichen von UTF-8 in ISO-88591 nicht dargestellt werden kann. Daher muss es vorher dekodiert werden.

Es gab bereits ein Code-Schnippsel was UTF-8 Texte in ISO-8859-1 konvertierte, aber nicht umgekerht, und das habe ich nachgerüstet.

Dein Betreffproblem könntest Du übrigens lösen, wenn Du E-Mails von Thunderbird aus im UTF-8 Zeichensatz schickst. Wie das konkret geht kann ich leider nicht sagen :)
Jetzt muss ich nur noch rauskriegen, weshalb die neuen Einträge welche ich per Mail poste erst im Blog aufgeführt werden, nachdem ich im Administrationsbereich den Menupunkt POPfetcher aufgemacht habe. Aber dies werde ich bestimmt bald rauskriegen, denn dafür gibts ja die Suche und dabei stösst man immer auch auf spannendes, welches auch abseits des aktuellen Problems interressiert.
Korrekt, popfetcher wird so nicht automatisch ausgeführt. Wenn Du dich jedoch mit crontab auseinandersetzen kannst, kannst du popfetcher so konfigurieren, dass er eine spezielle URL auswirft, die du regelmäßig per crontab aufrufen kannst und di edann die mails automatisch einstellt.

Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
john
Regular
Posts: 7
Joined: Tue May 30, 2006 11:14 pm

[EDIT] UTF-8 in Thunderbird Mail

Post by john »

Hallo Garvin

Vielen Dank für die ausführlichen Erklärungen zur Sache.

Weil mich die Sache zur Lösung fuchst, werde ich nun einerseits im [de] Thunderbird Forum zum 'Betreffsproblem' weitersuchen. Dort wird sich bestimmt was finden lassen. Andererseits habe ich zum Stichwort 'crontab' bereits recherchiert ... aber hoppla, da sollte ich wohl doch noch die Finger von den Tasten lassen. Da es aber ne Menge darüber zu lesen gibt, schaffe ich es ja vielleicht.

Lieber Gruss von John

EDIT: 20.6.2006 - 11:47
Habe die Lösung für den Betreff und die Umlautsache im Allgemeinen unter Verwendung von Thunderbird lösen können.
Der Zeichensatz für Ausgehende und Eingehende Nachrichten kann bei Thunderbird unter: Extra -> Ansicht -> Schrift eingestellt werden. dort habe ich dann für Ein- und Ausgehend auf UTF-8 gestellt.

A. Habe nun über Thunderbird ein Mail in den Blog gesendet.
- Resultat: Umlaute im Betreff (Subjekt) werden korrekt angezeigt, jedoch im Eintrag (Body) wurden die Umlaute wieder durch Fragezeichen ersetzt.

B. Habe den 'Garvin-Codeschnippsel' (in: plugins/serendipity_event_popfetcher/serendipity_event_popfetcher.php) wieder ausgebaut, da dieser ja eigens für meinen vorgänig falsch eingestellten Zeichensatz eingepflegt wurde. Habe also die Datei serendipity_event_popfetcher.php wieder durch das Original ersetzt und eine zweite Mail in den Blog gesendet.
- Resultat: Umlaute im Betreff (Subjekt) und Umlaute im Eintrag (Body) werden nun korrekt angezeigt.

Problem war also nur eine unsorgfältig eingestellte Zeichensatz Vorgabe im Thunderbird. Nun alles wieder iO und ne Menge gelernt.

:oops: Garvin vielen Dank beim Unterstützen meines fabrizierten Leerlaufes :oops:
Boris

Post by Boris »

Ich habe diesen Thread mal zum anlass genommen meine etwas angestaubte Version des Plugins zu aktualisieren.

Ich hatte frueher das Problem, dass mein Betreff als "=?ISO-8859-1?Q?T=F6st?=" oder so angezeigt wurde. Damals habe ich mir mit einem kleinen Hack (quoted_printable_decode und str_replace) beholfen. Jetzt werden die Quoted-Printables zwar vom Plugin umgewandelt, aber der Zeichensatz wird nicht beachtet.

Ich glaube das ist auch eins der Probleme in diesem Thread.
garvinhicking wrote:Dein Betreffproblem könntest Du übrigens lösen, wenn Du E-Mails von Thunderbird aus im UTF-8 Zeichensatz schickst.
Da ich mein Mobiltelefon nicht auf einen anderen Zeichensatz umstellen kann (das bloede Teil kann manche wie iso-8859-15 nichtmal darstellen!), habe ich mir mit einem kleinen Patch der class.mimedecode.php beholfen.

Code: Select all

--- old/serendipity_event_popfetcher/class.mimedecode.php       2005-10-20 00:00:00.000000000 +0200
+++ new/serendipity_event_popfetcher/class.mimedecode.php       2006-06-20 00:00:00.000000000 +0200
@@ -500,6 +500,7 @@
             }

             $input = str_replace($encoded, $text, $input);
+            $input = iconv($charset, LANG_CHARSET, $input);
         }

         return $input;
Der Patch setzt natuerlich voraus, dass a) die Datei aus dem s9y-Framework aufgerufen wird und b) iconv vorhanden ist.
Der Patch eignet sich vorallem durch "a)" eher schlecht um an "upstream" gesendet zu werden, aber wer Probleme damit hat, kann sich recht einfach behelfen.
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: [EDIT] UTF-8 in Thunderbird Mail

Post by garvinhicking »

Hi Boris und John!

Danke für die Patch-Idee, die sicher einiges schnell löst. Jedoch fehlte in alten popfetcher versionen schlicht das "decode_mailheaders" flag, dass sowas dann übernehmen würde. Das decoden übersetzt aber nur solche ?ISO...? Sachen in den ISO Zeichensatz, und wenn s9y als UTf-8 läuft, muss da natürlich eine transkodierung folgen. Dafür wäre dann eigentlich die decode() methode des popfetchers gedacht :)

Die popfetcher funktion müsste daher angepasst werden wenn John berichtet, dass mit UTF-8 Mailzeichensatz und Serendipity UTF-8 Zeichensatz die Mails als ISO rauskommen.

John, könntest Du bitte mal die decode methode in deinem popfetcher austauschen durch:

Code: Select all

    function decode($string, $charset) {
        if (strtolower($charset == 'utf-8)' && strtolower(LANG_CHARSET) != $charset) {
            echo '1) Decoding String from ' . $charset . ' to ' . LANG_CHARSET . "<br />\n";
            return utf8_decode($string);
        } elseif (strtolower(LANG_CHARSET) == 'utf-8' && strtolower($charset) != 'utf-8') {
            echo '2) Decoding String from ' . $charset . ' to ' . LANG_CHARSET . "<br />\n";
            return utf8_encode($string);
        } else {
            echo '3) Returning String from ' . $charset . ' to ' . LANG_CHARSET . "<br />\n";
            return $string;
        }
    }
Dann müsste der Popfetcher dir diverse ausgaben geben; könntest du da zum einen prüfen ob sie alle identisch sind und zum anderen, welcher der 3 Fälle ausgegeben wird und wie die Meldung lautet?

Vielen Dank und Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Boris

Re: [EDIT] UTF-8 in Thunderbird Mail

Post by Boris »

Da war wieder ein/der Fehler im Code. 'utf-8)'


Ich glaube aber nicht, dass die Funktion decode beim Betreff hilft. Zumindest bei mir wird die Funktion nur für den Body aufgerufen.

Fuer den Betreff ist ctype_parameters['charset'] als Basiszeichensatz IMO auch relativ unbrauchbar. Das gibt nur den Zeichensatz des Bodies bzw. der Anhaenge zurueck. Und der ist durchaus verschieden zum Zeichensatz des Betreffs.

Code: Select all

Subject: =?ISO-8859-1?Q?T=F6st?=
[...]
Content-Type: TEXT/PLAIN;
  charset="UTF-8"
Die Funktion mimeDecode::_decodeHeader liest zwar den Zeichensatz aus dem Betreff aus, macht aber nichts damit.
Man muesste vielleicht die Klasse mimeDecode so erweitern, dass optional ein Zielzeichensatz angegeben werden kann oder andersrum der Zeichensatz des Betreffs irgendwo gespeichert wird und die Umwandlung von s9y erfolgt.
Post Reply