Auge: Ausgabe von DB-Abfragen in UTF-8

Beitrag lesen

Hallo

Wenn ich also z.B. per phpMyAdmin die Kollation der DB, der Tabelle und der Felder auf einen anderen Zeichensatz umstelle, werden die Feldinhalte auch umgestellt?

... Letzten Endes zählt allein die Einstellung des Feldes. Wenn du Datenbank- und Tabellenkodierung umstellst, ändert sich an den Daten nichts. Es muss schon die Kodierungsangabe jedes Feldes einzeln angefasst werden.

Hatt' ich's mir doch gedacht. :-)

Etwaige Inkonsistenzen bei der Ausgabe kommen dann daher, dass der Vorgabewert für den Zeichensatz der Verbindung nicht dem Zeichensatz der Feldwerte entspricht?

Ja, entweder aktuell nicht entspricht oder damals nicht entsprach, als die Daten zum Server gesendet wurden.

Es ist beispielsweise kein Problem, wenn zwar sowohl Feld- als auch Verbindungskodierung auf Latin1 stehen, der Client aber UTF-8 sendet. Die Bytefolge wird problemlos im Feld abgelegt. Beim Abfragen kommt auch genau die gleiche Bytefolge zurück und kann gemäß UTF-8 interpretieren werden. Doch wenn MySQL die Daten interpretieren soll, sieht es kein ä sondern die beiden Bytes xC3 xA4 und damit à und ¤, weil es sie gemäß Latin1 interpretiert.

Wenn ich bei der Verbindungsaufnahme mit SET NAMES arbeite, wie es meine Funktion tut, kommt dann MySQL mit 'ä' vs. 'Ã und ¤' im Falle des Falles zurecht?

Tschö, Auge

--
Die deutschen Interessen werden am Liechtenstein verteidigt.
Veranstaltungsdatenbank Vdb 0.2