Navigation überspringen

WordPress, UTF-8, Backups und diese Schmerzen

11.11.2007·Kommentare:  5

Aufmerksamen Lesern ist es vielleicht aufgefallen: Vor ein paar Monaten habe ich es geschafft die Umlaute aller Kommentare vor dem 27. August 2007 zu verstümmeln. Die Ursache: Ich. Der Grund: Das Plugin UTF-8 Database Converter. Der Hintergrund: Das Update auf WordPress 2.2 führte in der Konfigurationsdatei einen Parameter ein, mit dem alle Daten konsequent mit UTF-8 enkodiert werden. Ältere WP-Installationen stellten ab dann Umlaute falsch dar, weil die Datenbankfelder damals nicht als UTF-8-Felder angelegt wurden. Die schnelle Lösung: Besagten Parameter nicht verwenden.

So weit, so gut. Allerdings wollte ich meine WP-Installation doch durchgehend auf UTF-8 umstellen, der einzig mir bekannte Weg war mir aber zu umständlich. Dann hat mich Richard auf besagtes Plugin aufmerksam gemacht, dass diese Arbeit mit einem einzigen Klick erledigt. Natürlich muss man bei solchen Tools, die direkt auf der Datenbank operieren vorsichtig sein – und das war ich leider nicht. Das Plugin funktionierte bei Artikeln wunderbar, bei Kommentaren nicht. Der Autor des Plugins war sehr bemüht und antwortete auch sofort auf meine Anfrage, leider blieb das Problem bestehen.

Als alle weiteren Versuche, den Fehler zu beseitigen fehlschlugen, wollte ich mein zuvor angelegtes Backup wiederherstellen. Leider musste ich feststellen, dass auch dort alle Umlaute falsch gespeichert wurden – warum weiss ich nicht. Die Fehldarstellung wich auch leicht von jener der Kommentare ab: Während letztere meist mit einem à (z.B. ü statt ü) begannen, führten jene im SQL-File eine Wurzel (z.B. √º statt ü) als erstes Zeichen. Ja ja, die wunderbare Welt falsch codierter Sonderzeichen aus der Sicht des UTF-8-Zeichensatzes.

Die Lösung

Wenn ich im WordPress-Config-File den UTF-8-Parameter leer gelassen habe, wurden die Sonderzeichen in den Kommentaren richtig dargestellt, jene in den Artikeln nicht mehr. Hier trat übrigens eine dritte Art der Fehldarstellung auf: Statt der zuvor erwähnten kryptischen Doppelzeichen ersetzte ein einfaches Fragezeichen (in manchen Mac-Editoren als hübsches � dargestellt) die Sonderzeichen. Ich verstehe das bis heute nicht, aber zumindest war es auf amüsante Art und Weise interessant.

Heute habe ich mich endlich dazu durchgerungen und ein einfaches PHP-Skript geschrieben, dass die betroffenen Kommentare richtig ausgibt (und zwar gleich in einer passenden Insert-Anweisung für MySQL). Diese habe ich dann via PHPMyAdmin in die Datenbank eingefügt. Da meine Programmierfähigkeiten etwas eingerostet waren, hab ich dabei glatt vergessen, das einfache Anführungszeichen zu »escapen«. Die Original-Kommentare (1803 Stück) in der Datenbank hatte ich aber bereits gelöscht, also war manuelles Ausbessern angesagt. Wie auch immer, jetzt sollten alle Kommentare wieder vollständig vorhanden sein. Mit dem Update auf WordPress 2.3.1 warte ich aber lieber bis nächstes Wochenende …


Schlagwörter

· · · · · · ·


5 Kommentare

#1 von Mr. MacTV's Blog » Umlaute und Wordpress am 15.5.2008, 18:46 Uhr

[…] Seit der Version 2.13 werden alle Buchstaben in UTF-8 enkodiert, soll heißen ältere WP-Installationen stellten ab dann Umlaute falsch dar, weil die Datenbankfelder damals nicht als UTF-8-Felder angelegt wurden. (read this) […]

#2 von retokuhn.ch » Probleme mit Umlauten beim Update von WordPress am 7.8.2008, 20:37 Uhr

[…] http://bensite.net/archive/2007/11/11/wordpress-utf-8-backups-und-diese-schmerzen/ Dieser Beitrag wurde geschrieben von admin am 7. August 2008 at 19:36 und gespeichert unter News, […]

#3 von ritchie am 12.8.2008, 15:43 Uhr

Wow, das gibt’s nicht… mir ist vor ein paar Wochen *exakt das gleich* passiert, hab dann schlussendlich die DB händisch mit Search+Replace repariert; das war aber höllisch mühsam 🙂

#4 von Benedikt am 13.8.2008, 10:45 Uhr

Search+Replace?! Wow. Das hatte ich mir aus Verzweiflung auch kurz überlegt, bis ich mal durchgegangen bin, welche Zeichen ich da alle ersetzen hätte müssen – geht ja nicht nur um Umlaute, sondern auch korrekte Anführungszeichen, Sonderzeichen aus anderen Sprachen usw. Das wäre mir dann zu unsicher gewesen, weil ich mir nie sicher gewesen wäre, alle »erwischt« zu haben.

Andererseits war mein Ansatz auch nicht unbedingt zeiteffizient. Ich hoffe echt, dass die Encoding-Sache bei WordPress damit ein für alle Mal erledigt ist … 😉

#5 von Blog der Familie Kaden » Blog Archive » Aufräumaktion im Blog und Ihre Folgen …. am 7.10.2008, 21:11 Uhr

[…] http://bensite.net/archive/2007/11/11/wordpress-utf-8-backups-und-diese-schmerzen/ […]


Kommentieren

Dieser Eintrag kann nicht mehr kommentiert werden.