Vinzenz Mai: UTF 8, alles durcheinander

Beitrag lesen

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