dedlfix: UTF-8 Sorgen

Beitrag lesen

Tach!

$this->dbc->set_charset('utf8');
Nun sind die ganzen Umlaute auf der Seite wieder zur SAU.
Also hat die DB obwohl Text Zellen auf UFT8 eingestellt was anderes Reingeschrieben.

Ja, weil du bisher dem DBMS nicht gesagt hast, welche Kodierung die Daten haben, die du mit ihm austauschen willst. Wie soll es dann wissen, was es zu tun hat, damit in den Feldern eine bestimmte Kodierung zu liegen kommt? Also hat es wohl gemäß seiner Defaultkonfiguration angenommen, du schickst ihm Latin1. Da die Felder auf UTF-8 konfiguriert sind, bleibt ihm wohl nicht viel mehr übrig, als umzukodieren.

Du sendest UTF-8, MySQL nimmt Latin1 an und kodiert zum Speichern nach UTF-8 um. Ergebnis ist eine "doppelte" UTF-8-Kodierung. Beim Abfragen nimmt es an, es soll die Latin1 schicken, wandelt also das angebliche UTF-8 wieder zurück nach Latin1, du denkst es ist UTF-8 und alles scheint bestens. Die ungewünschte Umkodierung wurde auf dem Rückweg wieder umgekehrt.

dedlfix.