Hallo dedlfix,
vielen Dank für deine Prüfung und deine Hinweise.
default-character-set kannst du weglassen, das ist nicht mehr aktuell und von character-set-server abgelöst. Lässt du beides drin, ist das doppelt gemoppelt.
init_connect = SET NAMES utf8
Das ist überflüssig, weil du sowieso den Server auf UTF-8 stehen hast.
Das werde ich mir merken. Danke.
Ein Mischbetrieb stellt im Prinzip kein Problem dar. Die Apache-Konfiguration lässt sich verzeichnisfein vornehmen. Wenn AddDefaultCharset nicht sowieso schon auf die mit PHP erzeugten text/html-Ressourcen wirkt, dann wäre ebenfalls eine Konfiguration im Verzeichnis empfehlenswert. Läuft PHP als Modul, kann man mit php_value php.ini-Werte ändern.
Ich habe PHP als Modul laufen.
Du meinst dies über eine .htaccess Datei realisieren?
z.b. so:
php_value default_charset utf-8 (oder mit Hochkomma "utf-8" ?)
Dann bräuchte man aber die .htaccess Datei auch in jedem Unterverzeichnis der Webanwendung oder?
Könnte man die Anweisung nicht auch über
ini_set(default_charset utf-8) in einer zentralen include Datei vornehmen?
Und: Könnte man sich dann die Zeile mit,
header("Content-Type: text/html; charset=utf-8");
sparen?
Bitte verwende nur SET NAMES. SET CHARACTER SET ist in den meisten Fällen unnötig bis schädlich. Obendrein ist die Verwendung von SET NAMES _und_ SET CHARACTER SET sinnlos, weil beide die gleichen Parameter einstellen, nur eben mit unterschiedlichen Werten.
OK, das werde ich berücksichtigen. Ich hatte dies mit SET CHARACTER SET in einigen Beispielen gesehen.
Was wohl noch wirklich notwendig ist (zumindest bei mir) war die Zeile mit
$DBO->query("SET collation_connection = utf8_unicode_ci");
Ohne dieser Zeile hatte ich Probleme bei einem Login mit Usernamen mit Umlauten.
vielen Dank und viele Grüße
hawk