WordPress nachträglich auf UTF-8 umstellen

image

Wie viele andere Web-Applikationen auch hat WordPress das Problem, dass die frühen Versionen noch nicht konsequent internationalisiert waren, sprich die Daten wurden nicht von Anfang als Unicode in die Datenbank geschrieben. Inzwischen ist UTF-8 auch bei WordPress Standard, und wer heute ein neues Blog aufsetzt, braucht sich keine Gedanken zu machen. Wer hingegen ein älteres Blog auf die neuste WordPress-Version aktualisiert, könnte die unangenehme Erfahrung machen, dass Umlaute und andere Nicht-ASCII-Zeichen nicht korrekt dargestellt werden.

Ein Blick in die Datenbank (z.B. mit phpMySQL) offenbart das Problem: Die Kollation der Tabellen steht noch auf “latin1_swedish_ci”, während WordPress davon ausgeht, dass die Daten als “utf8_general_ci” in der Datenbank vorliegen. Einfach die Kollation der fraglichen Tabellen umschalten (was man mit einem Tool wie phpMySQL grundsätzlich kann) ist keine Lösung, weil dadurch die bereits bestehenden Daten nicht konvertiert werden.

Ein Blick in die WordPress-Dokumentation zeigt, dass man mit diesem Problem nicht allein ist. Der dort empfohlene Prozess zur Umwandlung von Latin1 nach UTF-8 ist allerdings für technisch weniger versierte Anwender wenig einladend. Einfacher geht es mit dem UTF-8 Database Converter, der ganz einfach als WordPress-Plug-in installiert wird und auf Knopfdruck den gesamten Konversionsprozess abarbeitet.

Wichtig zu wissen:

  • Machen Sie unbedingt zuerst ein Backup Ihrer WordPress-Datenbank.
  • Offiziell unterstützt das Plug-in nur die WordPress-Versionen 2.1.x und 2.2.x (weil zwischen diesen beiden Versionen der Wechsel auf UTF-8 stattgefunden hat). Bei mir hat die Konversion aber auch unter WordPress 2.6.1 problemlos funktioniert.
  • Das Plug-in konvertiert sämtliche Tabellen der WordPress-Datenbank, also auch diejenigen, die von allfälligen Plug-ins angelegt wurden. In meinem Fall blieb dies ohne negative Folgen, aber ich kann nicht beurteilen, ob gewisse Plug-ins damit Schwierigkeiten haben könnten.
  • Je nach Grösse Ihrer Datenbank kann die Konversion einige Minuten dauern. Werden Sie nicht ungeduldig, wenn längere Zeit scheinbar nichts passiert und drücken Sie nicht die Reload-Taste.