WordPress auf UTF-8 umstellen

Wer bereits länger mit WordPress bloggt wird seine Datenbankinhalte aller Wahrscheinlichkeit noch im ISO-8859-1 Format abgespeichert haben, da in der Datenbank noch als Kollation latin1_swedish_ci o.ä.eingestellt ist. Will man auf seinen WordPress Blog komplett auf UTF-8 umstellen sind einige manuelle Schritte notwendig. Neuere WordPressversionen (Erstinstallation) sind in der Regel bereits auf UTF-8 eingestellt.

Anwenden auf EIGENE Gefahr. Wer nicht weiss, was er macht, sollte lieber die Finger davon lassen.

Umstellen auf UTF-8

Es gäbe zwar ein paar Plugins dafür, ich würde aber lieber die Hände davon lassen. Bevor man anfängt irgendwelche Veränderungen durchzuführen, unbedingt ein Backup machen!!!

1) In der Datei wep-config.php definiere als Zeichenformat UTF-8

define(‚DB_CHARSET‘, ‚utf8‘);

2) Falls noch nicht geschehen, im Adminbereich deiner WordPressinstallation unter Menüpunkt „Einstellungen > Lesen > Zeichensatz für Seiten und Feeds”auch „UTF-8“ eintragen.

utf8

utf8

3) Mit dem Tool phpAdmin die WordPress Datenbank ansteuern und sämtliche Kollationen von latin1_german1_ci auf utf8_general_ci umstellen (falls noch nicht geschehen).

Wer jetzt seinen Blog betrachtet, wird sehen, dass sämtliche Umlaute nicht korrekt dargestellt werden, auch hier hilft einem phpAdmin weiter.

4) um Umlaute wieder korrekt darzustellen müssen diese mit dem korrekten Zeichensatz ersetzt werden. Dazu klickt man in in phpAdmin den Reiter „SQL“ an und gibt zB. folgenden SQL-Befehl ein.

update wp_posts set post_content = replace( post_content,'ü','ü');
update wp_posts set post_content = replace( post_content,'ä','ä');
update wp_posts set post_content = replace( post_content,'ö','ö');
update wp_posts set post_content = replace( post_content,'ß','ß');
update wp_posts set post_content = replace( post_content,'Ãœ','Ü');
update wp_posts set post_content = replace( post_content,'Ä','Ä');
update wp_posts set post_content = replace( post_content,'Ö','Ö');
update wp_posts set post_title = replace( post_title,'ü','ü');
update wp_posts set post_title = replace( post_title,'ä','ä');
update wp_posts set post_title = replace( post_title,'ö','ö');
update wp_posts set post_title = replace( post_title,'ß','ß');
update wp_posts set post_title = replace( post_title,'Ãœ','Ü');
update wp_posts set post_title = replace( post_title,'Ä','Ä');
update wp_posts set post_title = replace( post_title,'Ö','Ö');
update wp_comments set comment_content = replace( comment_content,'ü','ü');
update wp_comments set comment_content = replace( comment_content,'ä','ä');
update wp_comments set comment_content = replace( comment_content,'ö','ö');
update wp_comments set comment_content = replace( comment_content,'ß','ß');
update wp_comments set comment_content = replace( comment_content,'Ãœ','Ü');
update wp_comments set comment_content = replace( comment_content,'Ä','Ä');
update wp_comments set comment_content = replace( comment_content,'Ö','Ö');
update wp_term_taxonomy set description = replace( description,'ü','ü');
update wp_term_taxonomy set description = replace( description,'ä','ä');
update wp_term_taxonomy set description = replace( description,'ö','ö');
update wp_term_taxonomy set description = replace( description,'ß','ß');
update wp_term_taxonomy set description = replace( description,'Ãœ','Ü');
update wp_term_taxonomy set description = replace( description,'Ä','Ä');
update wp_term_taxonomy set description = replace( description,'Ö','Ö');
update wp_tags set tag = replace( tag,'ü','ü');
update wp_tags set tag = replace( tag,'ä','ä');
update wp_tags set tag = replace( tag,'ö','ö');
update wp_tags set tag = replace( tag,'ß','ß');
update wp_tags set tag = replace( tag,'Ãœ','Ü');
update wp_tags set tag = replace( tag,'Ä','Ä');
update wp_tags set tag = replace( tag,'Ö','Ö')

Viola.
Nun sollten die Zeichen korrekt dargestellt werden.

Was macht dieser SQL-Befehl?
Er sagt nichts anderes, dass z.B: in der Tabelle wp_posts, in der Spalte post-content das Zeichen ‚ü‘ mit dem Zeichen ‚ü‘ ersetzt werden soll. usw.

5) Im Prinzip sollte alles wieder passen. Kann sein, dass man noch weitere Zeichen ala Methode 4 ersetzen muss. Eine übersichtliche UTF-8 Konvertierungstabelle dazu gibt es bei Bueltge.