dedlfix: Seit wann können die Browser UTF-8?

Beitrag lesen

echo $begrüßung;

Es wäre eigentlich unerheblich, ob die Daten in Latin 1 oder in utf-8 gespeichert werden, wenn nur sichergestellt ist, dass sie beim Holen genauso behandelt werden, wie beim Wegschreiben.

Das muss nicht sichergestellt werden, da MySQL gegebenenfalls eine Umwandlung vornimmt. Sichergestellt werden muss nur, dass Client und Server in der aktuellen Verbindung die gleiche Kodierung verwenden. Es ist beispielsweise problemlos möglich, in Richtung MySQL Latin1 zu verwenden und beim Abfragen UTF-8. Und die Kodierung der Felder ist dabei ebenfalls nebensächlich. (Man muss eigentlich nur darauf achten, dass in der gesamten Verarbeitungskette keine Kodierung verwendet wird, die nicht alle gewünschten Zeichen darstellen kann. Dieses Beachten kann man sich sparen, wenn man konsequent auf UTF-8 setzt.)

Ich vermutete den Fehler eher bei der Erfassung bzw. in der Darstellungsschicht für den User.

Wenn der Fehler in Richtung MySQL entsteht, müsste der PMA auch Fehler anzeigen. Auf dem Weg MySQL->PMA habe ich bisher noch keine Fehler feststellen können.

Es muss auf jedem Wegstück des Datentransportes und in jeder "Behandlungsroutine" sichergestellt sein, dass die gerade vorliegende Codierung bekannt ist und berücksichtigt wird.

Ja, diese müssen aber nur für das aktuelle Wegstück berücksichtigt werden, wenn die beteiligten Partner zwischen den Wegstücken für eine korrekte, verlustfreie Umwandlung sorgen (können).

Seit wann können die Browser eigentlich UTF-8 ?

Eigentlich schon seit geraumer Zeit. Was wirklich beim Client ankommt kann man übrigens erraten, wenn man im Menü Ansicht die (Zeichen)Kodierung mal händisch umstellt. Kommt es beim Umstellen auf Latin1/ISO-8859-1 zu einer richtigen Anzeige der Zeichen kann man davon ausgehen, dass der Browser ISO-8859-1-kodierte Daten empfangen hat. Die Fragezeichen deuten darauf hin, dass keine UTF-8-Kodierung, wie angegeben, verwendet wurde.

echo "$verabschiedung $name";