WordPress von latin1 auf utf8 umstellen
1. Januar 2010 von Michael | Wordpress
Nach dem Upgrade der Blogs auf WordPress 2.9 fiel auf, dass die Umlaute und andere Sonderzeichen nicht korrekt dargestellt wurden. d.h. “ĂĽ” anstatt “ü”, “ö” anstatt ö, usw. In der WordPress-Konfigurationsdatei wp-config.php standen vor und nach den Upgrade die Zeilen
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', 'utf8');
und unter der WP-Adminstration > Einstellungen > Lesen stand UTF-8 unter der Option “Zeichensatz für Seiten und Feeds”. Weshalb wird dies jetzt nach dem Upgrade plötzlich zum Problem?
Ein Blick auf die MySQL-Tabellen via phpMyAdmin offenbart es:

Hier sollte normalerweise utf8_general_ci stehen und eben nicht latin1_swedish_ci.
Schritt 1: MySQL-Tabellen auf UTF-8 umstellen
Nun gilt es also, die MySQL-Tabellen auf UTF-8 umzustellen. Ich habe hierzu einen MySQL-Dump erzeugt, d.h. mittels phpMyAdmin die Tabellen als Text-Datei exportiert. Danach habe ich, wie es auch auf Texto.de beschrieben ist, mittels Suchen/Ersetzen im Texteditor alle Vorkommnisse von CHARSET=latin1 durch CHARSET=utf8 ersetzt. Zum Schluss noch die Tabellen via phpMyAdmin leeren oder löschen und dann die bearbeitete Textdatei wieder hochgeladen. Als Ergebnis steht dann überall utf8_general_ci:

Alternativ kann man übrigens auch das WordPress-Plugin UTF-8 Database Converter eingesetzen. Aber aus irgend einem unerfindlichen Grund machte ich das ganze lieber manuell per Suchen/Ersetzen.
Schritt 2: Umlaute und Sonderzeichen konvertieren
Damit war es leider nicht getan, es wurden nach wie vor die Umlaute und Sonderzeichen wirr dargestellt ( “ĂĽ” statt “ü” usw.). Hier habe ich nun das Tool DSB’s Umlaut Korrektur (DUK) vom MySQLDumper-Entwickler eingesetzt (auf das Nils bei Perun aufmerksam machte).
Das ganze gestaltete sich sehr einfach: man muss nur in die mitgelieferte PHP-Datei die Datenbank-Daten eintragen (Server, DB-Name, Passwort) und diese dann auf den Webspace hochladen. Danach ruft man die Windows-exe-Datei duk.exe auf, gibt den Pfad zur PHP-Datei an und kann nun per 3 Mausklicks völlig entspannt das Zeichen-Wirrwarr automatisch korrigieren lassen.

Damit wurden sämtliche Umlaute und Sonderzeichen im Blog wieder korrekt angezeigt.
Frank Bültge hat übrigens eine Übersicht aller Sonderzeichen zusammengestellt.



Was ist ein Trackback?
2 Trackbacks/Pings:
1
Aus der Feder von 5432
Trackback vom 22. März 2010, 13:55
WordPress von latin1 auf utf8 umstellen... Schnell ein Blick in die WordPress Dokumentation geworden und nach der Lösung meiner Fragestellung, wie Stelle ich WordPress von dem nic…
2
Websenat
Trackback vom 29. März 2010, 13:29
Umlaute in der Datenbank von latin1 nach UTF8 korrigieren... Lange habe ich das Problem mit den Umlauten in meinem Blog vor mich hergeschoben, aber heute habe ich endlich mal die Z…
6 Comments:
1
Conny
2. Januar 2010, 3:50
Gut, dass Du es nicht mit dem UTF-8 Database Converter gemacht hast. Er löscht nämlich alle Linknamen und alle Kategoriennamen die einen Umlaut enthalten…….
2
Conny
2. Januar 2010, 4:10
Das DUK Tool hat mir ebenfalls alle Kategorien und Linknamen mit Umlauten rausgeworfen. Aber ansonsten scheint sich nichts geändert zu haben. Oder ich bin zu doof das hinzukriegen….
3
Joachim
2. Januar 2010, 10:30
Das steht mir denke ich auch noch bevor. Meine Tabellen laufen auch noch auf latin1_swedish_ci. Update auf WordPress 2.9 steht bei mir noch aus.
Hatten eigentlich mehrere dieses Problem beim Update auf WordPress 2.9?
Vielen Dank für den Post.
4
Michael
4. Januar 2010, 15:07
Mein Weg kommt ganz ohne “gezieltes” Umwandeln der Sonderzeichen und Umlaute aus:
http://www.greensmilies.com/20.....nach-utf8/
Die Kollation ändern, hat eigentlich nur Einfluss auf die Art der Sortierung.
5
Kalle
5. Januar 2010, 15:35
Hallo,
hatte das Problem auch. Habe alles aus der Datenbank exportiert, mit Texteditor geändert und wieder importiert. Nun läuft alles wieder auch ohne Änderungen an den Dateien!
6
Markus
5. Januar 2010, 20:10
Schön, auch mal wieder ein Lebenszeichen von dir zu hören! :-)
Bei mir tritt das Problem, das du oben genannt hast, zum Glück nicht auf.
Die Kommentarmöglichkeit ist derzeit für diesen Artikel ausgeschaltet.