Jeder, der schon mal was fürs Internet entwickelt hat, kennt das Problem: Umlaute und Sonderzeichen werden oft nicht korrekt dargestellt.
Der Browser rendert die Seite mit ISO-8859-15, die Datenbank und Datenbank-Felder haben die Kollation „latin1_swedish_ci“, Texte sehen so aus: „natürlich“, „löschen“, …
Damit man diese Probleme nicht hat, vor allem nicht bei mehrsprachigen Seiten, sollte man die Entwicklungsumgebung so früh wie möglich auf UTF-8 umstellen.
Diese Seite soll einen Überblick geben, was man für eine stressfreie Entwicklung (mit PHP und MySQL) zu beachten hat:
1) Apache (oder PHP) auf UTF-8 setzen
htaccess
AddDefaultCharset utf-8 |
php
header('Content-type:text/html;charset=UTF-8'); |
2) HTML auf UTF-8 setzen
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
3) Datenbank-Tabellen als „utf8-general-ci“ anlegen
4) Datenbank-Abfragen auf UTF-8 setzen
SET NAMES 'utf8'; SET SESSION character_set_server=utf8; |
5) Datenbank-Kollationen vergleichen, ob diese sich nicht unterscheiden
SHOW VARIABLES LIKE '%collation%'; |
Guter (wenn auch etwas älterer) Artikel dazu: UTF-8 und die Entity
Noch ein Artikel: UTF-8 allgemein
Achtung: Wenn die Fehlermeldung „Cannot modify header information“ ausgegeben wird, wird die Anweisung ignoriert und der Browser stellt auf Standard-Kodierung um.