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