hallo zusammen,
ich habe eine mySql-datenbank und ein paar php-seiten, die einträge vornehmen/verändern.
irgendwo war der hund in den zeichensätzen drinnen, mir viel es erst auf, als ich die tabelle nach einem kleinen "ü" durchuchen wollte, und kein resultat bekam. mittlerweile weiss ich, dass mySQL dei suche case-insensitive durchführt, und dass der fehler in der abspeicherung der umlaute im falschen zeichensatz begründet ist. so weit so gut. nun habe ich diverse parameter geändert und den fehler soweit im griff. allerdings NUR, wenn ich meiner mySQL - query ein "SET NAMES utf8" vorausschicke. tue ich das nicht, werden die älteren, nicht korrigierten einträge richtig dargestellt, die neuen utf8-codierten einträge aber mit einem fragezeichen-platzhalter. das bedeutet doch, dass die abfrage selbst nicht in utf-8 übermittelt wird, oder? (wie gesagt, wenn ich SET NAMES utf8 vorausschicke, werden die neuen einträge richtig dargestellt...)
folgende parameter sind auf utf8 eingestellt:
1.das dokument selbst, in dem ich die db-abfrage anschaue
2. die tabelle selbst ist utf8_general_ci
3. die tabellenspalte selbst ist ebenfalls utf8_general_ci
nun kommt meine eigentliche frage:
wo sonst kann noch der hund begraben sein, dass die query SET NAMES utf8 notwendig ist. wenn alles korrekt auf utf8 voreingestellt ist, müsste sie ja überflüssig sein, oder?
hier noch die umgebungsparameter der gesamten mySQL-datenbank. ich kene mich d nicht wirklich aus, welche einstellung jetzt priorität hat od evtl. eine einstellung "überschreibt"??
auf der startseite von phpMyAdmin stehen für die db folgende parameter:
MySQL-Zeichensatz: UTF-8 Unicode (utf8)
Zeichensatz / Kollation der MySQL-Verbindung: utf8_unicode_ci ==> spießt sich das vielleicht mit dem für die tabelle eingestellten utf8_general_ci??
hier die parameter, die man in phpMyAdmin unter "Servervariablen und -einstellungen" angezeigt bekommt:
character set client utf8
(Globaler Wert) latin1
character set connection utf8
(Globaler Wert) latin1
character set database latin1
character set filesystem binary
character set results utf8
(Globaler Wert) latin1
character set server latin1
character set system utf8
character sets dir C:\Program Files\MySQL\MySQL Server 5.0\share\charsets\
collation connection utf8_unicode_ci
(Globaler Wert) latin1_swedish_ci
collation database latin1_swedish_ci
collation server latin1_swedish_ci
hilfe:-(
paul