Christian Kruse: mysqli_set_charset utf8 warum?

Beitrag lesen

Hallo Lisa,

an jeder Schnittstelle wird hier die Kodierung übersetzt. Die "Leitung" zwischen dem Skript und der Datenbank ist eingerahmt von zwei Schnittstellen. Beide passen die Kodierung an.

danke für die Info. Wenn ich das richtig verstehe, wird aus 2 x UTF-8 u.U. ISO westlich.

Nein. Was Tom meinte ist, dass MySQL zwei Settings hat: in welcher Kodierung werden die Daten gespeichert und in welcher Kodierung spricht dein Script mit der Datenbank. Ersteres gibst du bei der Erstellung der Tabelle an und zweiteres kannst du bei jeder Verbindung neu angeben mit mysqli_set_charset. Offensichtlich ist der Default-Wert für die Verbindung mit MySQL ein Ecoding, in dem Umlaute nicht existieren, so dass die UTF-8-kodierten Tabellendaten beim Transport von der Datenbank zu deinem Script umkonvertiert werden müssen – und das geht dann halt nicht verlustfrei.

Und noch immer die Frage, ob die Zusatzanweisung der richtige Weg ist, das präventiv zu beheben?

Ja, das ist der richtige Weg.

LG,
CK