Überprüfung der Zeichencodierung mit dem Validator

Frage

Wie kann man mithilfe des W3C-HTML-Validators überprüfen, ob die Zeichencodierung eines Dokuments korrekt ist?

Antwort

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:

Übrigens

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: