Ist WordPress zeichensatzblind?
5. September 2007 – 11:09 Uhr

Aus meiner Reihe »Ist WordPress …?« berichte ich heute aus der kleinen Welt der Kommentare und Benachrichtigungs-E-Mails.
Früher, als WordPress noch 2.0 war, gelangten seine E-Mails, die mich über eingegangene oder zu moderierende Kommentare benachrichtigten, immer mit lesbarem Betreff ins Postfach. Heute ist das nicht mehr so: In manchen Fällen begnügt sich WordPress, seitdem es 2.2 ist, damit, Betreffs mit lediglich zwei aufeinanderfolgenden Fragezeichen in schwarzen Rauten zu formulieren.
Das sieht dann so aus:

Und das befriedigt nicht wirklich, denn wofür habe ich Filter gebastelt, die mir WordPress-Benachrichtigungen in dafür vorgesehene Ordner verschieben?
So richtig klar ist mir die Sache bisher noch nicht, ich habe jedoch Folgendes herausgefunden:
Immer, wenn der Titel eines geschriebenen Artikels Umlaute (ä,ö,ü,ß) enthält, scheint WordPress diesen auf bestimmte Weise (UTF-8?) kodieren zu wollen, damit er als Betreff verwendet werden kann. Das Ergebnis sieht dann so – entsetzlich – aus:
Subject: =?UTF-8?Q?[dyingeyes_weblog]_Kommentar:_"Aufgez=E4hltes,
_Gelistetes_und_E?= =?UTF-8?Q?inger=FCcktes"?=
Enthält der Titel dagegen keine Umlaute, hat WordPress offenbar keine Schwierigkeiten, den Betreff zu formulieren:
Subject: [dyingeyes weblog] Kommentar: " Fehler 404 – Datei nicht gefunden"
Wie man sieht, betrifft das nur die Umlaute, nicht jedoch andere kodierte Sonderzeichen wie z.B. den Gedankenstrich.
Als WordPress noch 2.0 war, trat dieses Verhalten bei Betreffs mit Umlauten übrigens nicht auf:
Subject: [dyingeyes weblog] Kommentar: "Einfältigkeit in Überdosis"
Ich frage mich, was hier genau passiert, bzw., was genau WordPress, seitdem es 2.2 ist, anders macht als früher. Ich verwende im Blog seit jeher den Zeichensatz »iso-8859-1« und habe beim Update daran nichts geändert. Ich werde wohl mal einen Blick in die Datenbank werfen müssen, um zu sehen, wie WordPress die Artikeltitel dort tatsächlich ablegt.
Vielleicht kann ja auch ein Blick in eines der WordPress-Foren nicht schaden …
Update 14:00 Uhr
Nachdem Dirk in seinem Kommentar (s.u.) auf das standardkonforme Verhalten von WordPress (seitdem es 2.2 ist) hingewiesen hat, Umlaute und Sonderzeichen in Betreffzeilen zu kodieren, scheint sich die Ursache des Problems eher auf den Mailclient Thunderbird zu verschieben. Der kommt möglicherweise mit dieser Kodierung nicht so recht klar und zerhackstückt die Betreffzeile.
Da ein Weghauen desselben aber nicht in Frage kommt, habe ich folgende Lösung als (vorläufigen) Workaround ermittelt:
Ich kodiere in Zukunft Umlaute in Artikel-Titeln mit Hilfe der HTML-Zeichencodes oder deren nummerischer Unicode-Umschreibung. Also für »ä« schreibe ich »ä« oder »ä«, für »Ö« »Ö« oder »Ö« usw.
Damit kommt WordPress offenbar wunderbar zurecht, die Validität (auch der Feeds) leidet sowieso nicht und der Thunderbird ist auch einigermaßen zufrieden. Er zeigt wieder halbwegs ordentliche und filterfähige WordPress-Betreffs an – zwar mit kodierten Umlauten, aber das ist jetzt eher nur ein Schönheitsfehler.
Update 06.09.2007, 21:00 Uhr
– editiert um 22:30 Uhr –
Langsam verstehe ich die Welt nicht mehr: Die Artikel-Titel werden tatsächlich mit Hilfe von Unicode-Kodierung von Umlauten bereinigt. Ein fast jungfräuliches Testblog auf einer anderen meiner Domains bestätigte diese Erkenntnis. So weit, so gut.
Dann passiert die o.a. merkwürdige zerhackstückte Umsetzung des Betreffs bei den Benachrichtigungs-E-Mails (auch im Testblog!). Setze ich dagegen die Unicode-Kodierungen für Umlaute manuell beim Schreiben des Artikeltitels, erhalte ich akzeptable E-Mails.

Dieser Inhalt (Textbeitrag und Fotos) ist unter einer Creative-Commons-Lizenz BY-NC-ND lizenziert.


Am 5. September 2007 um 13:24 Uhr
Tja, da hast du möglicherweise einfach ein Problem mit dem von dir verwendeten Mailclient. Das neue Verhalten von wordpress, den Betreff zu codieren, ist nach RFCschlagmichtot korrekt. Die alte Art, den Umlaut einfach reinzuhauen, ist nicht korrekt, denn im Mailheader sind nur reine ASCII-Zeichen erlaubt, also grad mal die Zeichen 0 – 127, keine Umlaute, keine anderen komischen Sonderzeichen.
Am 5. September 2007 um 13:34 Uhr
Das ist einleuchtend.
Mir war bisher klar, dass da irgendeine Kodierung stattfinden muss, da eben im Betreff einer E-Mail keine Umlaute vorkommen dürfen.
Ich bin inzwischen auch schon auf die Vermutung gekommen, dass das Problem auf der Mailclient-Seite liegen könnte und gerade dabei, mehr herauszufinden.
Ich hau den Thunderbird weg!
Nein, natürlich nicht.
Erstens bräuchte ich dazu eine Weghau-Extension, und zweitens lässt sich das Problem ja vielleicht irgendwie ohne Weghauen lösen.
Ich geh’ dann mal suchen und tüfteln …
Am 5. September 2007 um 15:49 Uhr
Hallo Boris,
ich habe das Problem in meinem SeaMonkey auch … was ja kein Wunder ist, da ja alle drei Produkte (SeaMonkey, Thunderbird, Firefox) aus der gleichen Familie kommen. Ich habe mich allerdings an diese komischen Zeichen im Betreff gewöhnt … :rolleye: ich war zu faul mich darum zu kümmern. Da kommt mir dein Beitrag sehr zu Recht.
Am 5. September 2007 um 20:32 Uhr
Jetzt müsste also nur noch jemand ein WordPress-Plugin schreiben, das automatisch Umlaute im Artikeltitel in HTML-Entities umwandelt.Dieses »Sowieso-cleanumlauts« macht das doch für die Umwandlung in den lesbaren URL, d.h. es wandelt Umlaute in ae, oe, ue, ss um.
Jemand … JEMAND! HUHU! müsste sich das mal anschauen. Jemand, der schon mal ein Plugin …
Oder sollte ich mir das etwa …
Ich, der noch nie …?
Das Problem muss woanders liegen bzw. entstehen, denn WordPress legt die Artikeltitel korrekt mit kodierten Umlauten ab.