Nach WordPress-Umzug waren meine Sonderzeichen kaputt…

Puh…

Die letzten paar Minuten haben mich Schweiß und Angst gekostet. Aber nun läuft alles wieder.

Szenario: vor ein paar Tagen habe ich meinen Webspace erweitert. Dazu musst ich auf einen anderen Server umziehen. Selber musste ich nichts machen, sondern das haben die freundlichen Leute von all-inkl.com für mich erledigt. Heute habe ich dann bemerkt, dass alle meine Sonderzeichen in den Artikeln und Kommentaren kaputt waren:

  • statt ö war immer ‚ö‘ zu sehen
  • statt ä war immer ‚ä‘ zu sehen
  • statt ü war immer ‚ü‘ zu sehen
  • statt ß war immer ‚ß‘ zu sehen

Ich habe ein wenig gegooglet und habe ein php-skript gefunden, dass das encoding der Zeichen umstellt. Allerdings brachte das keine Abhilfe, da anscheinend beim automatischen Datenbank-Import von all-inkl die Sonderzeichen „kaputtgegangen“ sind. D.h. in meiner Datenbank standen tatsächlich die anderen kryptischen Buchstabenkombinationen drin.

Noch ein wenig mehr googlen brachte mich dann zu „Suchen und Ersetzen in MySQL-Datenbanken„. Der Blogeintrag beschäftigt zwar damit, wie man von einer Domain auf eine andere umzieht, aber ich fand dort trotzdem praktische Hinweise. Letztendlich muss man ja nur die Inhalte der Posts durchsuchen und dort die kaputten Umlaute bzw. Sonderzeichen ersetzen.

Gesagt – getan! Ich verwendete dazu folgenden Code (durchgeführt direkt auf der Datenbank) – DURCHFÜHRUNG AUF EIGENE GEFAHR:

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_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, ‚‘, “);

Damit werden die Sonderzeichen im Post-Titel und Post-Inhalt ersetzt. Dabei ist mir zuerst ein kleiner Fehler unterlaufen, sodass kurzzeitig alle Titel den gesamten Blog-Eintrag enthielten. Nachdem ich das natürlich sofort gemerkt habe, blieb mir nichts anderes übrig, als mein Backup wieder einzuspielen. Das funktionierte aber nicht auf Anhieb… Der Import brach mit einer mir unergründlichen Fehlermeldung ab. Darauf hin habe ich die kompletten Datenbank-Tabellen gelöscht (ACHTUNG – GEFÄHRLICH!!) und dann das Backup eingespielt. Das hat dann geklappt.

Während dem Einspielen des Backups war kurzzeitig die Installations-Routine von WordPress zu sehen. Ich hatte währenddessen Angst, dass irgendein anonymer Besucher des Blogs schnell mal die Installation durchläuft… Aber dem war nicht so, wie ihr sehen könnt.

Als letzten Schritt habe ich dann noch in der Tabelle „wp_terms“ die entsprechenden Kategorien- und Tag-Namen ersetzt. Das habe ich von Hand gemacht, ging einfach schneller.

Puh… ein ganz schöner Schock war das erstmal. Aber jetzt läuft ja wieder alles.

Schlagworte: , , , , ,

2 Kommentare zu „Nach WordPress-Umzug waren meine Sonderzeichen kaputt…“

  1. CeBe sagt:

    Das animiert mal wieder zum Kauf eines bekannten T-Shirts 😉

    http://www.getdigital.de/products/scheiss_encoding

Kommentieren