dedlfix: Umlaute werden zu ?

Beitrag lesen

Hi!

Also, ich habe jetzt alles auf UTF-8 umgestellt; meine DB, die Tabellen, Spalten, die Dateien (dort UTF-8 ohne BOM, weil php-Sessions) und habe im Head meiner Seite/n

In deiner Aufzählung fehlt die Kodierung der Verbindung zwischen DBMS und PHP. (Stichwörter: mysql_set_charset() oder SET NAMES)

Allerdings sehen nun die Einträge in meiner DB anders aus: Aus dem Wort *körperliche* ist nun *körperliche* geworden - auf der Webseite wirds aber korrekt angezeigt. Ist das normal so?

Da vermutlich keine Verbindungskodierung eingestellt wurde, geht MySQL von Latin1 aus und kodiert den ankommenden Bytestrom in die Feldkodierung um. Rückwärts macht es das umgekehrt und du siehst wieder UTF-8. Normal ist das nicht, denn dabei geht dir Funktionalität (Stringfunktionen, Sortierung und Vergleiche arbeiten nicht richtig) und Spicherplatz (je ein Zeichen für jedes UTF-8-Byte) verloren. Die Folge ist unkorrektes Arbeiten und Datenverlust.

Lo!