Umlautproblem auf privatem Blog behoben

Geschrieben von:

Germanic umlaut on keyboardHeute habe ich mich mal um ein altes Problem meines Auf dem Weg – Blog gekümmert, der auf meiner HTML Seite klopsch.de in einem Frame eingebunden ist. Und zwar waren bei allen älteren Beiträgen die Umlaute zerschossen. Das ist mir schon früher aufgefallen, aber ich hatte nie den Antrieb dazu mich schlau zu machen, wie man das beheben kann. Das Problem ist im Internet sehr bekannt und entsteht in den meisten Fällen bei einem Serverumzug. Bei mir kam das aber irgendwann bei einem älteren WordPress Update mal zustande.

Zuerst habe ich MySQL-Dumper auf meinem Webspace hochgeladen und installiert. Damit habe ich erstmal alle meine Datenbanken gesichert. Danach bin ich ans Eingemachte gegangen und habe über das Interface von MySQL-Dumper folgende SQL-Befehle ausgeführt:

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

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

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

Dann hab ich das alles nochmal für die Großbuchstaben mit folgenden Änderungen der obigen Code Snippets gemacht: (Ãœ -> Ü), (Ö -> Ö) und (Ä -> Ä)

Bindestriche korrigieren:
UPDATE wp_posts SET post_content = replace(post_content, '–', '–');
UPDATE wp_posts SET post_title = replace(post_title, '–', '–');

Und tatsächlich, es hat geklappt! Alle zerschossenen Umlaute wurden wieder richtig dargestellt. Gut, es war zwar alles viel Arbeit. Aber es hat sich gelohnt. Endlich ist dieses alte Problem behoben. *freu*

Bildquelle: Wikipedia / Das Original wurde von LSDSL erstellt (modifiziert von mir)

4

Über den Autor:

Hi, ich bin Jörg Klopsch - freiberuflicher Online Redakteur bei Tippe New Media UG & Co. KG und Blogger auf GrabFreeGames.net ... Dies ist meine erste englisch-sprachige Internetseite über kostenlose Spiele im Internet. (hauptsächlich für die Spieleplattform Steam) mit teilweise über 2.000 Besucher täglich!!! Du findest mich auch auf Google+, Facebook, Twitter, Instagram, LinkedIn und Xing
  Verwandte Beiträge

Kommentare

  1. Matthias  April 16, 2014

    Dann setz jetzt aber auch die Datenbankverbindung auf UTF-8 – sonst bekommst Du doch die selben Probleme wieder?!
    Matthias kürzlich veröffentlicht…Nischenseitenchallenge: Woche 6 – Entspannt geht es weiterMy Profile

    antworten
    • Jörg Klopsch  April 16, 2014

      Du hast recht, das sollte ich machen. Hab davon gelesen, wusste aber nicht wo ich das einstellen kann. Hast du ein Tipp für mich, wo ich das ändern kann ?

      antworten
  2. Jörg Klopsch  April 16, 2014

    In meiner wp-config.php steht bereits folgendes drin: define('DB_CHARSET', 'utf8'); In der MySQL-Datenbank steht unter Allgemeine Einstellungen: Zeichensatz/Kollation der MySQL-Verbindung „utf8mb4_general_ci“… Muss ich noch was anderes beachten oder umstellen ?

    antworten
  3. Matthias  April 18, 2014

    Normalerweilse sollte die Collation auf utf8_general_ci stehen – in wie weit sich diese von utf8mb4_general_ci unterscheidet, kann ich gerade nicht sagen.

    Das mit dem Default Charset ist jedenfalls schon einmal der richtige Schritt. Am besten Du schaust mal mit einem Client in deine DB, ob die Zeichen dort auch richtig ankommen (ö, ä, ü, ß, …).

    Im zweiten Schritt kannst Du dann prüfen, ob diese auch richtig wieder ausgelesen werden und auf der Seite richtig angezeigt werden.

    Klingt aber erstmal korrekt soweit.
    Matthias kürzlich veröffentlicht…Nischenseitenchallenge: Woche 6 – Entspannt geht es weiterMy Profile

    antworten

Schreibe einen Kommentar


CommentLuv badge