molily: Grundgerüst einer XHTML-Datei

Beitrag lesen

Hallo,

In XHTML-Dokumenten sollte die Kodierung (wie in allen XML-Dokumenten) in einer XML-Deklaration angegeben werden. Wenn du z.B. ISO 8859-1 verwendest, dann <?xml version="1.0" encoding="ISO-8859-1" ?> am Anfang des Dokuments.

Diese Angabe setzt ein XML-Parser um, eine Angabe in einem meta-Tag jedoch ignoriert ein korrekter XML-Parser. Daher die Validome-Fehlermeldung:

"Es wurde keine Zeichensatzkodierung gefunden. Aus diesem Grund wurde UTF-8 verwendet."

Wenn du also nicht die Standardkodierung UTF-8 verwendest, muss das Dokument eine XML-Deklaration mit einer entsprechenden Kodierungsangabe enthalten oder die Kodierung muss zumindest im Content-Type-Header der Webserver-Antwort drinstehen.

Da XHTML-Dokumente meist sowieso als text/html ausgeliefert werden, kommt der XML-Parser der Browser nicht zum Einsatz und der Browser rät die Kodierung notfalls. In dem Fall verzichtet man auf eine XML-Deklaration lieber, da sie den IE 6 in den Quirks-Rendermodus wirft.

Nichtsdestoweniger handelt es sich bei einem solchen XHTML-Dokument ohne ordnungsgemäße Kodierungsangabe nicht um ein gültiges XHTML-Dokument, ein XML-Parser könnte es niemals korrekt verarbeiten (darüber geht der besagte Artikel). Deshalb ist es ratsam, XHTML-Dokumente (wie im Grunde alle XML-Dokumente) direkt in UTF-8 zu schreiben.

Unter http://jendryschik.de/wsdev/einfuehrung/xhtml/meta  findet man lediglich die Angabe:

<meta http-equiv="content-type" content="text/html; charset=utf-8" />

Sofern ein XHTML-Dokument UTF-8 verwendet, ist für XML-Parser auch keine Angabe zur Zeichenkodierung nötig.

Ist es vorgeschrieben, dass als Zeichensatz utf-8 genommen werden muss?

Ja, UTF-8 ist die Standard-Zeichenkodierung von XML-Dokumenten, sofern der Autor nichts gegenteiliges angibt. Ein XML-Parser geht erst einmal von UTF-8 aus.

Die zweite Angabe "Im Dokument befindet sich in Zeile 31 und Spalte 52 ein ungültiges Zeichen.
Dieses Zeichen ist in der verwendeten Zeichensatzkodierung (utf-8) nicht erlaubt." werde ich im Laufe der Tage beseitigen. Ein öffnen und speichern in Phase 5 sollte reichen?!

Wenn du damit meinst, dass du auf UTF-8 umstellen willst: Ja, wenn du Phase 5 beim Speichern entsprechend anweist, UTF-8 zu verwenden.

Mathias