Vielen Dank, das hat schonmal Überblick gebracht. Ich denke mein Problem liegt in unterschiedlichen Encodings, eines ist mir aber noch unklar.
Wer sind die Akteure? Die Kette sieht quasi so aus:
Code: Alles auswählen
Browser des Clients <--> Apache2 <--> PHP auf dem Server <--> MySQL
MySQL nimmt das Encoding, das der Client anfordert. Das ist in diesem Fall php, richtig?
Für PHP sind aber die Encoding Einstellungen auf beiden Servern gleich:
Alter Server:
Code: Alles auswählen
~# php -i | grep -i encoding
iconv.input_encoding => ISO-8859-1 => ISO-8859-1
iconv.internal_encoding => ISO-8859-1 => ISO-8859-1
iconv.output_encoding => ISO-8859-1 => ISO-8859-1
mbstring.encoding_translation => Off => Off
mbstring.internal_encoding => ISO-8859-1 => no value
SQLite Encoding => UTF-8
Neuer Server:
Code: Alles auswählen
~ # php -i | grep -i encoding
iconv.input_encoding => ISO-8859-1 => ISO-8859-1
iconv.internal_encoding => ISO-8859-1 => ISO-8859-1
iconv.output_encoding => ISO-8859-1 => ISO-8859-1
HTTP input encoding translation => disabled
mbstring.encoding_translation => Off => Off
mbstring.internal_encoding => no value => no value
Also zum Apache, was ist dort eingestellt:
Alter Server:
Code: Alles auswählen
# fgrep -iR AddDefaultCharset /etc/apache2/
/etc/apache2/conf.d/charset:# Read the documentation before enabling AddDefaultCharset.
/etc/apache2/conf.d/charset:#AddDefaultCharset UTF-8
/etc/apache2/mods-available/proxy.conf: AddDefaultCharset off
/etc/apache2/mods-enabled/proxy.conf: AddDefaultCharset off
Neuer Server:
Code: Alles auswählen
# fgrep -iR AddDefaultCharset /etc/apache2/
/etc/apache2/conf.d/charset:# Read the documentation before enabling AddDefaultCharset.
/etc/apache2/conf.d/charset:#AddDefaultCharset UTF-8
/etc/apache2/mods-available/proxy.conf: AddDefaultCharset off
/etc/apache2/mods-enabled/proxy.conf: AddDefaultCharset off
Als Charsets sind in beiden Servern alle möglichen eingestellt (AddCharset), auch UTF-8 und ISO-8859-1
Also dürfte Apache und PHP nicht anders agieren als auf dem alten Server. Während des übertragen der Daten ist auch nichts falsch gelaufen, ich habe einen mysqldump auf dem alten Server erstellt, und auf dem neuen wieder eingespielt (per Konsole). Beide Konsolen haben eine locale Einstellung für UTF-8, alle kopierten Dateien und Templates sind ohne Probleme auf den neuen Server gelandet.
Wo liegt dann der Fehler? Apache zu Client Kommunikation? Hat jemand noch einen Tip