Barrierearme Navigation

  1. Springen Sie direkt zur Hauptnavigation
  2. Springen Sie direkt zum Inhalt
  3. Springen Sie direkt zur Unternavigation
  4. Springen Sie direkt zu den Service-Links

Service-Links

Impressum Twitter-Vogel Briefumschlag-Icon RSS-Icon

Zurück zur barrierearmen Navigation

Navigation

Zurück zur barrierearmen Navigation

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 X(HT)ML-Parser interpretiert wurden. Der falsche Doctype zog dann natürlich Darstellungs-/Rendering-Fehler nach sich. Das Problem löste sich, als ich mit dem Editor "PSPad" die Dateien nochmal mit UTF-8-Codierung abgespeichert habe, daher führe ich es auf einen Fehler im Windows "Editor" zurück.

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-charset den Wert UTF-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" reinkommen, dies führt zu Fehlern und die Daten sind dann nicht mehr wirklich brauchbar.

social bookmarks

Logo Mister Wong Logo oneview Logo folkd Logo digg Logo del.icio.us

Zurück zur barrierearmen Navigation

Unternavigation

Zurück zur barrierearmen Navigation