Wie kann man mithilfe des W3C-HTML-Validators überprüfen, ob die Zeichencodierung eines Dokuments korrekt ist?
Um sicherzustellen, dass alle Empfänger eines Dokuments dieses richtig darstellen und verarbeiten können, ist es sehr wichtig, die Zeichencodierung ('charset') korrekt anzugeben. Eine Möglichkeit, diese zu überprüfen, bietet der W3C Markup Validation Service. Der Validator erkennt gewöhnlich die Zeichencodierung aus dem HTTP-Header und aus den Angaben im Dokument. Wenn der Validator die Zeichencodierung nicht erkennt, kann diese auf der Ergebnisseite im Pulldown-Menü 'Encoding' ausgewählt werden (Beispiel).
Aber oft hat der Validator nichts zu beanstanden, selbst wenn eine falsche Codierung erkannt oder ausgewählt wurde. Der Grund dafür ist, dass sich viele Codierungen sehr ähnlich sind und der Validator nur die Syntax des Markups prüft und nicht entscheiden kann, ob der decodierte Text einen Sinn ergibt oder nicht. Um sicherzustellen, dass die Codierung richtig ist, d.h. dass das Dokument beim Leser richtig angezeigt wird, beachten Sie folgende Punkte:
Wenn die ausgewählte oder automatisch erkannte Codierung US-ASCII
, UTF-8
, UTF-16
oder iso-2022-jp
(japanisches JIS) ist und der Validator keine Probleme mit der Zeichencodierung meldet, dann ist die Wahrscheinlichkeit hoch, dass die gewählte Codierung korrekt ist.
Beachten Sie, dass US-ASCII
eine echte Teilmenge von UTF-8
ist, wenn also US-ASCII
funktioniert, dann funktioniert auch UTF-8
.
Bei jeder anderen Codierung muss visuell geprüft werden. Wählen Sie die Option Show Source (Quelltext anzeigen) aus dem erweiterten Interface des Validators und prüfen Sie, ob Nicht-ASCII-Zeichen im Text korrekt dargestellt werden. Bei Seiten in anderen Sprachen als Englisch ist das oft schnell getan. Bei englischen Seiten mit nur wenigen Nicht-ASCII-Zeichen kann das schwieriger sein.
Wenn Sie z.B. versuchen, die W3C-Homepage als iso-8859-1 zu interpretieren, müssen Sie bis fast ganz ans Ende gehen, bis Sie auf Text wie '©' und '®' stoßen und sehen, dass das die falsche Codierung ist. (Diese Seite sagt dem Validator allerdings von Anfang an, dass sie UTF-8-codiert ist, da müssten Sie eigentlich nichts anderes prüfen.)
In manchen Fällen wird auch mehr als eine Codierung die Zeichen in einem Dokument richtig wiedergeben. So überlappen sich bspw. iso-8859-1
(Latin-1, Westeuropa) und iso-8859-2
(Latin-2, Osteuropa) teilweise, und auch andere Codierungen
dieser Serie. Wenn Sie nach sorgfältiger Prüfung keinen Unterschied feststellen können, dann ist jede Codierung gut. Die enge Verwandschaft dieser Codierungen in Bezug auf Bytemuster
und in Bezug auf abgedeckte Zeichen erklärt, warum nur eine visuelle Prüfung sicherstellen kann, dass die Codierung korrekt ist.
Wenn keine der vom Validator angebotenen Codierungen funktioniert, haben Sie entweder eine Seite in einer Codierung, die der Validator (noch) nicht unterstützt, oder Text in mehreren verschiedenen Codierungen gemischt auf der Seite. Im ersten Fall schreiben Sie an die Validator-Mailing-List (öffentliches Archiv), wenn Sie Ihre Zeichencodierung ergänzt haben möchten. Im zweiten Fall müssen Sie Ihre Seite in Ordnung bringen, denn jede Webseite kann nur eine einzige Zeichencodierung verwenden.
Der Validator kann nicht ohne die Information über die Zeichencodierung arbeiten, denn SGML- oder XML-Validierung basiert auf der Prüfung der Folge von Zeichen des Dokuments; was der Validator aber als Eingabe erhält, ist eine Folge von Bytes. Anhand der Zeichencodierung kann der Validator die Bytes in Zeichen konvertieren. Das gilt allgemein für alle möglichen Empfänger, einschließlich Browser. Wenn nicht die richtigen Zeichen bestimmt werden, zeigt ein Webbrowser Müll an.
Der Validator tut dies, indem er die angegebene Codierung in UTF-8 konvertiert und intern UTF-8 verwendet. Wenn die Konvertierung nach UTF-8 fehlschlägt, weil eine bestimmte Bytefolge in der Eingabecodierung nicht vorkommen darf, meldet der Validator einen Fehler. Bei Eingaben in UTF-8 prüft der Validator, dass nur gültige UTF-8-Bytefolgen verwendet wurden.
Die visuelle Prüfung einer Webseite in einem Browser ohne Verwendung des Validators kann evtl. nicht ausreichend sein, denn:
<img>
), der überprüft werden sollte.von der IANA registrierte Zeichencodierungen (charsets) (der Validator unterstützt nur die weit verbreiteten Codierungen und nur die bevorzugten Bezeichnungen, keine Alias)
Verwandte Links: Server-Konfiguration
Verwandte Links: HTML und CSS verfassen
Verwandte Links: SVG verfassen