Der Martin: UTF-8 und Windows

Beitrag lesen

Hallo,

Im Anschluss zeigten dann die aus der DB geladenen Inhalte auf der mit <meta charset="UTF-8"> ausgezeichneten Seite den typischen Umlaute-Müll.

Zunächst dachte ich, das läge an den Inhalten der DB-Tabelle, da diese im Windows CP 1252 in die Tabelle importiert wurden. Als Hotfix für die Ausgabe war utf8-encode() *) erstmal wirksam.

also war deine Vermutung wohl richtig.

Ich habe in der DB eine neue Tabelle angelegt, die explizit UTF-8-codiert ist; auch die Kollation der Spalten wurde angepasst von latin1_german1_ci zu utf8_general_ci.

Und hast du die Tabelleninhalte dabei nur kopiert? Oder auch wirklich umcodiert? Denn einfach nur Kopieren ist so, als ob du den Senf aus dem Senfglas in ein anderes Glas umfüllst, auf dem "Honig" steht. Dadurch wird der Senf noch nicht zu Honig.

Überraschenderweise landen die DB-Texte, wenn man utf8-encode() weglässt, wieder nur mit Umlaute-Müll auf der Webseite.

Also vermutlich wirklich nur kopiert. 😟

Was läuft da schief und wie behebe ich das?

Ich kenne mich nicht gut genug mit SQL aus, um dir eine datenbank-interne Lösung aufzuzeigen, bin aber sehr zuversichtlich, dass es eine solche gibt. Ohne ausdrückliches Umcodieren geht's jedenfalls nicht.

Live long and pros healthy,
 Martin

--
Lieber heimlich schlau als unheimlich blöd.