echo $begrüßung;
mir ist gerade die folgende Meldung ins Auge gesprungen, als ich in phpmyadmin eine Zeile geupdatet habe:
UPDATE
xyz.bf\_langSETlang\_de= 'Start' WHERE CONVERT(bf\_lang.idUSING utf8 ) = 'start' AND CONVERT(bf\_lang.hashUSING utf8 ) = 'ea2b2676c28c0db26d39331a336c6b92' LIMIT 1 ;Ich frage mich, was da konvertiert wird...alle Zeilen stehen auf latin1_german1_ci, es wird nur deutsch und englisch benutzt.
phpMyAdmin unterhält sich bei Abfragen mit dem Server generell in der Kodierung UTF-8. Diese Umkodierung, die phpMyAdmin da vornimmt, ist im Prinzip überflüssig, da MySQL selbst zwischen verschiedenen Kodierungen umkodiert, wie beispielsweise der Feldkodierung latin1 und der Verbindungskodierung utf8. Ich kann mir als Grund für dieses Verhalten phpMyAdmins nur vorstellen, dass es in speziellen Fällen Probleme gegeben haben könnte. Bekannt ist mir nichts, müsste ich mal das ChangeLog durchschauen.
Was kann ich hier machen bzw. was könnte hier los sein? (Ich weiß auch nicht so recht, wonach ich googlen könnte...) Kann ich die Daten irgendwie zu latin1_german1_ci konvertieren?
Wenn du generell sowohl für die Kodierung der Felder als auch für die Kodierung der Verbindung (Stichwort: mysql_set_charset() bzw. SET NAMES) die gleiche Einstellung verwendest, kannst du auf die Konvertiererei verzichten. Es ist allerdings eine Überlegung wert, ob du nicht statt Latin1 lieber UTF-8 verwenden willst, denn das kann mit deutlich mehr Zeichen umgehen. Allerdings ist PHP5 noch nicht UTF-8-fähig, was sich bei der Stringverarbeitung nachteilig auswirken kann.
echo "$verabschiedung $name";