Inhalt der aktuellen Seite
Website-Umstellung auf UTF-8
HTML-Seiten und mittels PHP generierte Daten (Blog-Einträge und -Kommentare, Gästebuch-Einträge etc.) auf UTF-8 umstellen
Bei der Neugestaltung- und programmierung meiner Homepage habe ich die Zeichensatzkodierung auf UTF-8 umgestellt. Vorteil von UTF-8 ist, dass alle möglichen Sonderzeichen aller Sprachen darin vereint sind, ich nicht auf die Verwendung von Entities angewiesen bin und die Seiten in jedem Land gleich angezeigt werden, es also keine Probleme mit der Schriftdarstellung gibt.
Zuerst einmal muss man seine Seiten - und damit meine ich die Dateien -
UTF-8-codiert abspeichern, generell ist das nicht so ein Problem, unter
Windows beherrscht dies der standardmäßig mitgelieferte "Editor" und
auf dem Mac zum Beispiel "TextMate". Zum "Editor" unter
Windows möchte ich noch anmerken, dass mir ein Problem damit aufgefallen ist.
Als ich meine Dateien damit abspeicherte und dann mittels PHP eingebunden (z.B.
include) habe, wurde die Darstellung verzerrt. Es wurde ein
UTF-8-Byte (BOM - Byte Order Mark) an den Anfang der Datei geschrieben, welches dafür sorgte, dass der
Inhalt auf der vertikalen Ebene erst tiefer begann. Besonders problematisch wurde
dies bei der Datei mit den Kopfinformationen (Header), da durch das UTF-8-Byte zu Beginn
der Datei - und somit auch vor dem XML-Header - die Datei und der Doctype falsch
gelesen wurden, weshalb die Seiten im Quirks-Mode anstatt mit dem
Wenn man dann schon dabei ist und das Projekt nicht zu umfangreich, kann man
auch seine Dateien von Entities (z.B. ü für ein
"ü") befreien, es schadet aber natürlich auch nicht die Entities
stehen zu lassen.
Nachdem nun die bestehenden Dateien UTF-8-Codiert sind, sollte man die
Meta-Angabe im HTML-Header ebenfalls noch anpassen, das müsste wie folgt aussehen:
<meta http-equiv="content-type" content="text/html;
charset=UTF-8" />. Liegt außerdem eine X(HT)ML-Datei vor, sollte
auch der XML-Header richtig angepasst sein: <?xml
version="1.0" encoding="UTF-8" ?>.
Die statischen Daten sind nun alle auf UTF-8 eingerichtet, doch was ist,
wenn man Daten von Webseiten-Besuchern speichert und sie wieder in seine Seiten
einbaut (z.B. In Blogs oder Gästebüchern)? Speichert man beispielsweise in einer
UTF-8-codierten XML-Datei nicht-UTF-8-Daten ab und möchte anschließend auf
diese Datei zugreifen, bekommt man nur eine Fehlermeldung, dass die Datei nicht
ihrem Header entsprechend ausschließlich UTF-8-codierte Zeichen enthält.
Abhilfe schafft hier, wenn man im <form>-Tag dem Attribut
accept-charsetUTF-8 zuweist, so
kann man die übergebenen Daten mittels PHP-Script einfach einer UTF-8-Datei
hinzufügen ohne sich Probleme einzuhandeln.
Falls man allerdings Daten mit PHP entgegennimmt und speichern will, die
nicht über ein - wie eben beschrieben präpariertes - Formular reinkommen, sollte
man die Daten mittels des PHP-Befehls utf8_encode in UTF-8
konvertieren, bevor man sie speichert.
Ein wichtiger Tipp noch zum Schluss, man sollte utf8_encode
nicht auf Daten anwenden, die über ein Formular mit
accept-charset="UTF-8"