Hallo
Ich hab eine PHP Seite über die ich meine Daten in die Datenbank schreibe, diese PHP-Seite ist UTF 8 Kodiert, wird auch laut Response Headers als UTF 8 an den Browser übermittelt.
Die Kollation der Datenbank selbst und alle enthaltenen Tabellen sowie Felder sind auf utf8_unicode_ci eingestellt, dennoch werden Sonderzeichen in der Form „ü“ gespeichert, warum?
weil Du vermutlich der Datenbank (implizit) sagst, dass Latin-1 kommt. Implizit, weil Du _nicht_ explizit UTF-8 vereinbarst.
Selbst wenn ich die Sonderzeichen in ihrer Richtigen Form in der DB habe, werden sie auf dem Browser nicht richtig dargestellt, obwohl _alles_ in UTF 8 kodiert ist, was mache ich falsch?
weil Du für die Verbindung (implizit) sagst, dass Latin-1 ankommt. Implizit, weil Du _nicht_ explizit UTF-8 vereinbarst und standardmäßig vermutlich Latin-1 verwendet wird.
Absetzen der Anweisung
[link:http://dev.mysql.com/doc/refman/5.0/en/charset-literal.html@title=SET NAMES UTF-8]
(einmal je Verbindung) oder die Verwendung von
- mysql_set_charset()
- mysqli_set_charset()
(beide ab PHP 5.2.3) sollte Abhilfe schaffen.
Freundliche Grüße
Vinzenz