Die Überschrift ist leider nicht so aussagekräftig wie ich ich es gerne hätte.
Also Hintergrund zu meiner Frage ist folgender:
Auf einem Testsystem (Windows Server 2003) wurde eine Webseite entwickelt. Der Apache (v2.2.x), die Datenbank (MySQL 5.1) und die Webseiten (in PHP geschrieben) wurden auf UTF8 Zeichensatzbasis entwickelt. Funktioniert alles wie gewollt.
Produktivsystem ist ein Linux CentOS 5.5 mit gleicher Konfiguration von Webserver. PHP und MySQL DB. Die Konfigurationsdateien, für diese Produkte wurden mehr oder weniger übernommen, natürlich mit den Betriebssystemspezifischen Anpassungen der Pfade.
Wenn ich mir die Webseiten auf beiden Systemen nun anschaue und mir die Codierung ausgeben lasse steht dort auch wunderbar UTF8.
Mein PRoblem ist nun aber, dass auf dem Testsystem alles korrekt dargestellt wird, ich aber auf dem Produktivsystem die Steuerzeichen für die Sonderzeichen angezeigt bekomme. Und ich habe leider keinen Schimmer wieso.
Was ich bereits ausprobiert habe ist, dass auf den Webseiten im Tag
Code:
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />
gegen ISO-8859-1 einzutauschen, was auch funktioniert. Dann werden warum auch imer mir die Einträge korrekt angezeigt. Mache ich dies aber auf dem Testsystem sehe hier nun die Steuerzeichen. Allerdings weiss ich mittlerweile nicht mehr weiter, ausser , dass ich die Webseite nochmal umschreibe und gezielt utf8_encode und _decode einsetze umd die ganzen Datensätze zu verarbeiten.
Im Apache ist kein DefaultCharset definert und mittels addcharset Direktiven auch die iso und utf8 Charsets definiert.
In der php.ini hab ich den default-charset Wert auskommentiert, damit das über den meta Tag gesteuert werden kann.
Die my.cnf hat folgede Einträge dazu:
Code:
...
[mysql]
default-character-set=utf8
...
[mysqld]
# The TCP/IP Port the MySQL Server will listen on
port=3306
#Path to installation directory. All paths are usually resolved relative to this.
basedir=/usr
#Path to the database root
datadir=/var/lib/mysql
# The default character set that will be used when a new schema or table is
# created and no character set is defined
character-set-server=utf8
...
Edit: Hab grade festgestellt, dass der Test MySQL Server 5.1.x ist und die Produktion 5.5.x. Kann das ggf. daran liegen? Verwaltet die 5.5er Version evtl. diesen Charset anders?