wordpress kollation umstellung

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading...Loading...

wordpress-php5-mysql5.jpg

nachdem wir unsere datenbank auf mysql5 aktualisiert haben wurden bei uns bei sämtlichen wordpress installationen auf dem server alle sonderzeichen und umlaute falsch angezeigt. das lag zum einen an der von mir noch nie so perfekt durchgezogenen umstellung auf uft-8 (ab wordpress version irgendwas wird standartmäßig UTF-8 anstelle der ISO-8859-1 benutzt).
ich hatte bisher immer die mühe gescheut mich mit dem thema kollationen, utf und iso schlagmichtot auseinander zu setzen. aber da jetzt auch webseiten von kunden betroffen waren, wurde es höchste zeit.

Hier gehts lang zum einfachen WordPress Themes runterladen.

nachdem die datenbank von version 4 auf mysql 5 gebracht wurde, zeigte sich auf den wordpress blogs ein kritisches bild. alle umlaute und sonderzeichen wurden falsch dargestellt. das lag vor allem an der kollation der datenbank tabelle “latin1_swedish_ci”. leider bin ich mir nicht sicher ob sich durch das update der mysql datenbank die kollation geändert hat, aber fakt ist: vorher wurde alles korrekt angezeigt.

ich habe daher folgende schritte zur lösung durchgeführt:
ich setzte jetzt einfach voraus das ihr alle anderen einstellungen auf UFT-8 stehen habt. in der wp-config.php, als meta tag im template und in den wordpress einstellungen (einstellungen > lesen > “Zeichensatz für Seiten und Feeds”) kann man den zeichensatz einstellen. in meinem blog steht alles auf UFT-8. ich hatte erst daran gedacht den blog wieder zurück in das altbewährte ISO-8859-1 zu bringen. ich halte den internationalen utf-8 standart für zukünftige unternehmungen für sicherer.

mysql tabellen kollation ändern
als erstes habe ich die tabellen auf “latin1_german1_ci” gestellt. das kann man zum beispiel mit phpMyAdmin machen indem man sich die tabelle anzeigen läßt und dann auf “operationen” im oberen menu klickt. hier kann man relativ weit unten die kollation einstellen und mit dem OK knopf bestätigen. das fürt man für alle tabellen des wordpress blogs durch.

kollation-aendern.jpg

umlaute und sonderzeichen konvertieren
es gibt ein paar plugins und php scripte die diesen job erledigen sollten, aber leider hat dabei keins bei mir funktioniert. also habe ich die korrekturen per hand durch geführt. dazu kann man wieder mit phpMyAdmin arbeiten:
ihr seid natürlich in der richtigen datenbank eingeloggt. jetzt klickt ihr oben auf SQL (es spielt keine rolle welche tabelle ihr zuletzt ausgewählt habt) und löscht in dem feld “SQL-Befehl(e) in Datenbank *db name* ausführenDokumentation” den vorab eingetragenen befehl und führt folgenden aus:

update kzt_posts set post_content = replace( post_content,’ü’,’ü’);

phpmyadmin-sql.jpg

die variablen dazu sind einfach erklärt: kzt_posts ist die tabelle an der änderungen gemacht werden sollen und post_content das entsprechende textfeld. in anderen tabellen stehen die zu ändernden informationen natürlich in einem anderen textfeld. ihr werdet die namen dazu sicher sofrt erkennen wenn ihr euch die entsprechende tabelle anseht. am ende des befehls stehen die werte die gesucht und gegen welchen wert sie ausgetauscht werden sollen. eine entsprechende tabelle habe ich weiter unten angefügt.
klickt man auf OK, werden alle werte geändert und wir erhalten eine meldung wie oft der wert in der datenbank korrigiert wurde.

die folgenden umlaute können dabei in eurer datenbank vorkommen. je nachdem ob ihr schon mit SO-8859-1 gearbeitet habt, können da recht wilde sonderzeichenkombinationen herauskommen:

ü
ü
Ü
Ü
ä
ä
Ä
Ä
ö
ö
Ö
Ö
ß
ß
Ë
é

man könnte natürlich auch einen langen befehl in die SQL aufforderung schreiben, aber dann versteht ja wieder niemand was man dort macht ;-)

27 Responses to “wordpress kollation umstellung”

  1. Mani Says:

    Sehr schöner Artikel! Absolut empfehlenswert!

  2. Martin Michel Says:

    Vielen Dank für diesen Artikel, er hat mir heute sehr geholfen!

    Ich hatte auch das Problem, daß nach einem nächtlichen Serverumzug und gleichzeitigen MySQL-Upgrade die Sonderzeichen/Umlaute in einer WP-Datenbank durcheinandergeraten waren.

    Aber dank des Tutorials funzt wieder alles :)

    Danke!

  3. Thomas König Says:

    Nach 2 Tagen suchen, hat mir Deine Anleitung endlich weitergeholfen!

    Scheinbar hat mein Provider ebenfalls ein Update auf MySQL5 am Wochenende gefahren…

    Vielen Dank!

  4. Thorsten Says:

    Habe soweit alles ausgeführt aber wenn ich nun bei mir auf Datenklicke dann auf sql und den Befehl
    update kzt_posts set post_content = replace( post_content,’ü’,’ü’);
    erscheinte eine fehlermeldung
    es würden ” fehelne die eingesetzt heist es
    wp posts existiert nicht.
    u.s.w
    nach stundenlangen rumfummeln kommt irg wann

    #1064 – You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘set post_content =” replace(post_content,’ü’,’ü’)’ at line 1

    hast du vielleicht icq und die tage mal zeit?
    würden dich auch als dank auf der hp verlinken :-D

  5. Udo Z Says:

    Sehr geil…

    hat mir viel Arbeit erspart. Herzlichen Dank.
    Gruß

    Udo

  6. Upgrade erfolgreich, Umlaute tot » Peruns Weblog Says:

    […] Suchen und Ersetzen) umwandeln muss? Gute Frage, ü ist z.B ü und ß steht für ß usw. Auf konzentrat.org gibt es eine vollständigere Liste. Dort wird auch beschrieben, wie man im PHPMyAdmin anstatt im […]

  7. Michael Says:

    @ Thorsten

    ersetze die ’ durch ‘

    @ Topic

    Es gibt leider noch weit mehr als öäüßÖÄÜË und mein Dilemma ist: wie finde ich all die Zeichen, von denen ich nichts weiß?

  8. Michael Says:

    Hmm, WordPress ersetzt mir hier im Kommentar leider den einzelnen Hochkommata durch dieses andere Ding, dessen Namen ich nicht kenne. Thorsten, nimm das Hochkommata azf deiner Kanalgitter-Taste. ;)

  9. Dan Says:

    Hallo,

    erst mal ein Lob für diese Anleitung.

    habe mich an die Anleitung gehalten,
    allerdings war und ist in meiner wp-config.php kein UTF-8-Vermerk. Dafür in WordPress eingestellt unter -> lesen.

    Ich bin so vorgegangen wie du es beschrieben hast kann nun aber post_content
    und post_name
    nicht auf german ändern..

    auf die Änderung:

    ALTER TABLE `wp_posts` CHANGE `post_content` `post_content` LONGTEXT CHARACTER SET latin1 COLLATE latin1_german1_ci NOT NULL

    kommt diese Fehlermeldung:
    MySQL meldet: Dokumentation
    #1283 – Column ‘post_content’ cannot be part of FULLTEXT index

    Ich weiß nicht so recht weiter.. Was ich nun als Notlösung machen wollte:

    das ganze über phpmyadmin zu dumpen dann die einträge per Hand zu machen in UTF-8 umzuwandeln /Ändern; dann in WordPress über wp-config.php und header.php Einträge auf UTF-8 zu stellen und dann wieder den Dump einzuspielen.

    Mit behagt es allerdings nicht so ganz, weißt du vielleicht noch eine Lösung zu meinem Problem bevor ich diese o.g. Notlösung starte=?

    Vielen Dank im Vorraus,
    Daniel

  10. andi Says:

    Hallo,

    habe das Problem aktuell auch.

    Wenn ich die Kollation von swedish… auf utf-8 ändere – welches utf-8 muss ich denn dann nehmen? utf8_bin, utf88_unicode_ci oder utf8_general_ci?

    Ansonsten finde ich die Beschreibung sehr gut.

    Grüße

    andi

  11. andi Says:

    one more thing …

    Mir ist aufgefallen, dass du ja von latin1_german1_ci schreibst und nicht von utf8.

    Hatte das erst so verstanden, als ob man utf8 nehmen müsste. Was ist denn jetzt richtig?

  12. kyio Says:

    bei uns steht es auf utf8_general_ci aber im prinzip sollten die anderen auch funktionieren. stell es einach mal um und korrigiere einen eintrag in der db

  13. monika’s w e b l o g » Blog Archive » MySQL Upgrade Says:

    […] the wordpress community, I found out. The nicest tutorial about how to fix the errors, I found on konzentrat.org: Change wp-config.php and wordpress settings to UTF-8; Change all the database tables to […]

  14. Der Weg nach utf8 - GreenSmilies Says:

    […] empfehlen kann ich das Vorgehen von Perun oder kONZENTRAT.org die Zeichen per Suchen und Ersetzen auszutauschen, da sich die kaputten Zeichen u.U. nicht auf die […]

  15. Splitter des Chaos » Update auf WP 2.7 deutsch Says:

    […] Besten Dank für diesen Hinweis an Konzentrat.org […]

  16. Jochen Says:

    Ärgerlich ich bekomme eine Fehlermeldung wegen nicht geschlossener Anführungszeichen, obwohl ich den Replace-String per Copy and Paste übernommen habe – schaust du da nochmal drüber oder erwähnst, ob man da irgendwo Backticks nehmen muss?

    Danke vorab.

  17. Jochen Says:

    Okay, habe es gefunden:
    UPDATE `wp_posts` SET post_content = replace(post_content, “ü”, “ü”);

  18. Silenttob Says:

    Vielen Dank, das hat mir gerade eben viel Arbeit nach dem Update von WordPress erspart…

  19. Alex13 Says:

    How theories of speech affect research in reading and writing. ,

  20. Wordpress 2.9 Upgrade - tobisworld.net Says:

    […] Eigentlich habe ich schon damit gerechnet. Bei der Umstellung auf die neue MySQL Version, verabschiedeten sich kurzerhand alle Umlaute aus meiner Webseite. Natürlich hatte ich ein Backup. Aber die Lösung um wieder die Umlaute zurückzuholen, fand ich dann auf dieser Webseite. […]

  21. fhu's weblog » Neues mySQL, neue Arbeit! aus Selent, Kreis Plön, SH Says:

    […] Müsste da ein Skript geben — nur, auf die Shell kann ich nicht zugreifen. Also weiter schauen… Diesen Artikel mit anderen […]

  22. Neues mySQL, neue Arbeit! :: frank huncks blog :: selent Says:

    […] Was sollen die seltsamen Zeichen hier? Die Auswirkung des Serverumzugs, denn mySQL 5 ist extremer im Handling von Zeichensätzen. Händisch rd. 200 (neues) und 800 (altes Blog) Artikel überarbeiten? Müsste da ein Skript geben – nur, auf die Shell kann ich nicht zugreifen. Also weiter schauen… […]

  23. Nach MySQL-Update die Umlaute korrekt darstellen « startafire Says:

    […] Ich bin anscheinend nicht der einzige Administrator mit dem Problem und fand dann recht schnell eine Übersicht über kaputte Umlaute und ihre richtigen Gegenstücke. […]

  24. MySQL 5, mir graut’s vor dir | admartinator.de Says:

    […] man die Kollation umstellt, habe ich bereits hier finden können. Auch Plugins gibt es, die einem behilflich sein können. Ich bin jedoch jemand, […]

  25. Sponsordealer Says:

    Endlich mal ne wirklich gute Anleitung, bin schon fast am verzweifeln gewesen. Ist zwar sicher nicht der Sinn das man die Umlaute von Hand ändern muß aber wenn es nicht anders geht was nützt es.

  26. BOOYABOO.DE » Zeichensalat nach Serverumzug Says:

    […] mit ein paar Komandozeilen-Befehlen mittels phpMyAdmin auch wesentlich eleganter, wie dieser Artikel auf konzentrat.org beschreibt. Ein bißchen Stöbern in den Kommentaren zu eben diesem […]

  27. Robert Says:

    Nachdem mir das jetzt zum dritten Mal passiert ist, hab ich endlich mit deiner Gegenüberstellung der ISO- und utf8-Umlaute und ein bisserl SQL eine Lösung, damit das beim nächsten Mal schneller korrigiert ist.