Umlautproblem nach Serverumzug in WordPress beheben

Dieser Blog hat letzte Nacht den Server gewechselt. Von einem Server mit PHP4 und MySQL4 auf einen neueren mit  PHP5 und MySQL5, alles bei all-inkl.de. Zwei Dinge geschahen: Zum einen war wpseo plötzlich deaktiviert und alle Einstellungen weg. Okay, Seriennummer neu eingeben, XML-File neu laden und Einstellungen anpassen, kein Problem. Dennoch unerklärlich.

Das zweite Problem war, dass alle Umlaute und das ß entstellt waren. Hier halfen mir ein paar Routinen, die ich via phpMyAdmin über die Datenbank laufen ließ.  Falls das Problem bei anderen auch auftauchen sollte, hier die Snippets:

Umlaute im Text korrigieren:


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, 'ß', 'ß');

Umlaute im Post-Titel korrigieren:

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, 'ß', 'ß');

Damit waren schon mal alle Posts korrekt. Allerdings haben hier Menschen Kommentare hinterlassen. Also folgte:

Umlaute in Kommentaren korrigieren

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, 'ß', 'ß');

Jetzt waren noch die Namen der Kommentatoren entstellt, grade auch bei Trackbacks unschön. Also:

Umlaute im Titel der Kommentare korrigieren

UPDATE wp_comments SET comment_author = replace(comment_author, 'ü', 'ü');
UPDATE wp_comments SET comment_author = replace(comment_author, 'ö', 'ö');
UPDATE wp_comments SET comment_author = replace(comment_author, 'ä', 'ä');
UPDATE wp_comments SET comment_author = replace(comment_author, 'ß', 'ß');

Als letztes fielen mir entstellte Umlaute in den Tags auf. Vor allem unschön, da wpSEO die Stichworte auch in den Title der Seite einfügt. Also auch hier:

Umlaute in Tags korrigieren:

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, 'ß', 'ß');

Tja, diesmal funktionierte es aber nicht. Es war allerdings eh nur ein Tag betroffen, so dass ich diesen von Hand korrigierte. Keine Ahnung, warum diesmal das komplette Suchen/Ersetzen fehlschlug. Ich schob es zuerst auf die zwischenzeitliche Migration von Wordpres 2.8.6 auf 2.9.2. Aber da ich die Namen der Kommentatoren noch nicht korrigiert hatte, führte ich dies als letzten Schritt durch und siehe da: Es ging. Also keine Ahnung, wo der Fehler bei der Tag-Konvertierung lag.

Wichtig: Alle Befehle einzeln durchführen, nicht alles auf einmal reinhauen.

Ach ja, erst hinterher entdeckte ich, dass in der config eingestellt war:

define('DB_CHARSET', 'utf8');

In der Datenbank sind die Tabellen aber auf "latin1_swedish_ci" formatiert.  Möglicherweise hätte ich also einfach nur die Einstellung in der Config ändern müssen. Teste ich, wenn das Problem beim nächsten Mal auftaucht :)

Edit: Hier eine andere Vorgehensweise bei Perun.

Tags: , , , , , ,

10 Kommentare zu “Umlautproblem nach Serverumzug in WordPress beheben”

  1. Sergej Müller

    Da scheint dein Umzug nicht alle Daten der Datenbank fehlerfrei übernommen zu haben - ich meine dabei die Settings der Plugins. Nur wenn die Einstellungen in der Datenbank fehlen oder die Zuordnungstabelle kaputt geht, kann ein Plugin auf seine Einstellungen nicht einlesen. Insofern ist wpSEO sich keine Schuld bewusst, hat dir aber indirekt geholfen auch Tags zu konvertieren.

    Gratulation zum Umzug.

  2. Wolke23

    Sergej, du kennst ja mittlerweile meine lustigen Erfahrungen bei Serverumzügen. Immerhin zickte diesmal die header.php nicht rum ;-)

  3. Sergej Müller

    Jepp, so gesehen, alles reibungslos gelaufen ;)

  4. Wolke23

    Zwei Hinweise:
    "latin1_swedish_ci" ist in diesem Kontext egal und hat auf die Darstellung keinen Einfluss.

    Und wer den Serverumzug selbst managen kann, kann allen Problemen ganz easy aus dem Weg gehen:
    http://www.mysqldumper.de/ downloaden, installieren, Dump anfertigen, Webspace umziehen, Dumper wieder installieren, Dump neu einspielen. Der Dumper sorgt in seinen neueren Version dafür, dass Umlautprobleme etc. vermieden werden.

  5. fairbanx

    super tipp, hat alles bestens funktioniert. danke!

  6. Wolke23

    Ich arbeite grade an einer Datei, die man künftig direkt über die Datenbank laufen lassen kann, und die alles automatisch erledigt in wenigen Sekunden. Eventuell auch als PHP-Datei zum Download. Weiteres die Tage/Wochen ;-)

  7. Firewire

    Moin moin,

    wir haben ein kleines Problem. Den wir haben wordpress upgedated von php4 auf php5 + SQL.
    Leider haben wir nun im Text immer Fragezeichen haben auch schon das probiert mit dem Ihr arbeitet und auch gepostet haben, teilweise hat das geholfen, aber leider nicht alles. wir können es drehen und wenden entweder ist das eine gut und das andere schlecht aber komplett haben wir es nicht hinbekommen.
    Eventuell kann uns da jemand unter die Arme greifen, das wäre super :
    Hier könnt ihr das anschauen : http://www.spruechetante.de/sprueche-sammlung/index.php/tag/hochzeitstag/

  8. Frank Doerr

    Sieht aus, als wären da nur ein paar sehr spezielle Sonderzeichen erhalten geblieben. Dafür einfach das Äquivalent suchen und auch in der Datenbank beim Content durchlaufen lassen.

  9. Umlaute – häh? | © by Kitty

    [...] Hand in allen Posts die fehlerhaften Zeichen auszutauschen, habe ich nach längerer Suche auf die vogeschriebenen Befehle von Frank Doerr zurückgreifen können. Und voila! alle Umlaute werden wieder korrekt angezeigt. [...]

  10. Impulsive Domains

    Hallo zusammen, wir haben noch eine alte WP Installation die rübergeschubst werden muss. Leider klappt es bei uns mit dem MysqlDumper nicht. Wir haben weiterhin zerschossene Umlaute. Weiß jmd. Abhilfe. Wir haben alles versucht. und die Umlaute alle einzeln auszubessern haben wir auch als Lösung in Betracht gezogen bis wir gemerkt hben das Bindestriche und Anführungszeichen etc. auch alle zerschossen sind. :(

    Grüße
    Sascha

Einen Kommentar schreiben: