HTTP-Header überprüfen

i18n-Checker

Mozilla Web-Sniffer

Delorie HTTP Header Viewer

Rex Swain’s HTTP Viewer

W3C-Markup-Validator [erweitertes Interface]

Intended audience: Nutzer, HTML-Autoren (die Web-Editoren/Texteditoren oder Scripte benutzen), Script-Entwickler (PHP, JSP u.a.), Webprojekt-Manager und alle, die verstehen möchten, wie man die im HTTP-Header gesendete Zeichencodierung überprüft.

Question

Wie kann ich die Information über die Zeichencodierung prüfen, die im HTTP-Header eines Webdokuments gesendet wird?

Es ist wichtig, die Zeichencodierung (charset) eines übers Web ausgelieferten Dokuments anzugeben. Andernfalls kann der Empfänger das Dokument nicht richtig interpretierten. Ein Webbrowser würde bspw. irgendwelche Zeichen anzeigen anstatt lesbaren Text. EIne Möglichkeit, die Zeichencodierung eines Webdokuments anzugeben, ist es, diese Information in den charset-Parameter des Content-Type-Headers zu tun.

Hier muss insbesondere darauf hingewiesen werden, dass die im HTTP-Header angegebene Zeichencodierung bei HTML- oder CSS-Dokumenten alle Angaben im Dokument selbst überschreibt.

Answer

Es gibt verschiedene Möglichkeiten, ein Webdokument einschließlich Header zu prüfen:

Der i18n-Checker

Der vom W3C entwickelte Internationalization-Checker prüft Webseiten auf verschiedene für die Internationalisierung problematische Dinge. Er enthält auch einen Abschnitt, der die mit Internationalisierung verbundenen Informationen über eine Seite zusammenfasst, wie bspw. Zeichencodierung, Sprachangabe usw. Dieser Abschnitt zeigt, ob eine Zeichencodierungs-Angabe im HTTP-Header vorliegt, und wenn ja, welche.

Besonders nützlich ist am i18n-Checker, dass er auch andere, im Dokument vorliegende Zeichencodierungs-Angaben anzeigt und warnt, wenn diese verschieden sind.

Einen webbasierten Dienst verwenden

Es gibt verschiedene Dienste, die alle HTTP-Header und den Quelltext (HTML/XHTML) des vom Server ausgelieferten Dokuments anzeigen, nachdem man dessen Adresse angegeben hat:

Das W3C steht in keiner Verbindung zu diesen Diensten.

Sehen Sie in den HTTP-Headern nach dem Content-Type-Header und insbesondere nach dem charset-Parameter, z.B.

Content-Type: text/html; charset=utf-8

Es kann auch sein, dass kein charset-Parameter vorhanden ist. Das ist in Ordnung, wenn das Dokument selbst seine Zeichencodierung angibt.

Den W3C-Markup-Validator verwenden

Um das Markup zu überprüfen, muss der Markup-Validator sicherstellen, dass er das zu prüfende Dokument korrekt decodiert. Er zeigt eine Fehlermeldung, wenn er keine Information über die Zeichencodierung vorfindet, wenn er widersprüchliche Informationen vorfindet oder wenn er das Dokument nicht mit der angegebenen Zeichencodierung decodieren kann.

Um die Zeichencodierung zu erfahren, die der Validator gefunden hat, kann man das erweiterte Interface benutzen. In diesem Interface kann man auch die Option „show source“ (Quelltext anzeigen) wählen und dann visuell prüfen, ob der Quelltext korrekt interpretiert wurde. Das dient zur Prüfung, ob auch wirklich die richtige Zeichencodierung verwendet wurde. Es ist nicht immer möglich, mechanisch zu prüfen, ob bspw. ein Dokument, das angibt, es sei iso-8859-1-codiert, in Wahrheit nicht iso-8859-2 oder eine andere Codierung verwendet.

telnet oder ein anderes Kommandozeilen-Tool verwenden

Hierzu benötigt man etwas mehr Erfahrung, das ist aber leichter zu automatisieren. Ein anderes Kommandozeilen-Tool ist wget (mit Option -S oder -s).

By the way

Manche Server führen eine Umcodierung durch und senden Webdokumente an verschiedene Clients in verschiedenen Zeichencodierungen. Das geschieht bspw. auf einigen Servern in Russland. Das erfordert besondere Achtsamkeit, denn ein Browser, der bspw. auf einem Mac oder einem Windows-System läuft, könnte eine andere Zeichencodierung anzeigen als ein webbasierter Dienst oder der W3C-Markup-Validator (die meist auf UNIX-Systemen basieren).