Kollationsmix

marneus

Registered User
Hallo zusammen!

Hierzu gibt es zwar etliche Themen, theoretische und praktische Abhandlungen im Netz, aber ich bin mir trotzdem nicht sicher, wie ich es anpacken muss / kann / soll.

Fangen wir mit den Fakten an:
Debian 4.0
MySQL 5.0.32
Apache 2.2.3 (Debian)
PHP 5.2.0-8

MySQL hat als Default Character Set latin1. Laut phpmyadmin ist der verwendete Zeichensatz UTF-8 Unicode. Hierzu bräuchte ich eine Erklärung. Meine Vermutung/Überlegung ist, dass es sich bei dem durch phpmyadmin angezeigten Charset um den für die gerade geöffnete Verbindung gültigen Charset handelt. Bin mir aber unsicher.

Die Datenbanken sind in unterschiedlichen Zeichensätzen abgespeichert (latin & utf8). Die in latin gespeicherten Datenbanken funktionieren einwandfrei in der Web-Anzeige.

Ein Webprojekt ist nun im UTF-8 Zeichensatz gespeichert. Die Kollationen sind alle identisch auf UTF-8. Die Speicherung muss jedoch mal in Latin stattgefunden haben, denn in der Datenbank steht z.B.
Code:
für Offenlegung der Bezüge
Dieser Datensatz (und auch die anderen "korrupten") wird in der HTML-Ausgabe allerdings fehlerfrei dargestellt, obwohl als Charset im HTML-Kopf UTF-8 angegeben ist. Dies wird auch im Antwort-Header bestätigt
Code:
Date: Thu, 08 Jan 2009 14:57:37 GMT
Server: Apache/2.2.3 (Debian) PHP/5.2.0-8+etch13 mod_ssl/2.2.3 OpenSSL/0.9.8c mod_perl/2.0.2 Perl/v5.8.8
X-Powered-By: PHP/5.2.0-8+etch13
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8
200 OK
Ich bin also etwas ratlos, warum ein korrupter Datensatz korrekt angezeigt wird.

Nachtrag:
Wenn ich via phpmyadmin die korrupten Einträge repariere, sprich die Umlaute (ohne HTML-Encoding) eingebe, werden Sie auf der Webseite falsch dargestellt. Das verstehe ich nun gar nicht mehr.

Grüße,
--marneus
 
Last edited by a moderator:
Back
Top