Umlaute im Validator
Onkel Schnitzel
- html
0 Bevan0 Detlef G.0 Thomas Mell
Nabend,
soll man Umlaute nun durch benannte Zeiche (ä....') oder ist das nicht nötig? Ich habe gerade meine Seite validiert und sie ist valide, obwohl die Umlaute nicht umgeformt sind- es gibt auch keine Warnung oder einen Hinweis darauf. Das wundert mich etwas.
Mein Doctype und Zeichensatz:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
Gruß,
Onkel Schnitzel
Hallo!
Der von dir gewählte Zeichensatz iso-8859-1 enthält ja alle gängigen deutschen Umlaute. Die Zeichen, die in diesem Zeichensatz vorhanden sind, kannst du also in deinem Dokument verwenden und ein Browser, der den Zeichensatz kennt, kann sie auch ohne Probleme darstellen.
Michael
Danke für Eure Erklärungen.
Hallo
soll man Umlaute nun durch benannte Zeiche (ä....') oder ist das nicht nötig?
Das ist nur nötig, wenn Zeichen verwendet werden, die nicht in der
angegebenenen Zeichenkodierung enthalten sind.
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
Dort sind die deutschen Umlaute auch enthalten.
s. Liste der ISO-8859-Zeichensätze.
Auf Wiederlesen
Detlef
Hallo,
mal so eine Ergänzungsfrage dazu: Gilt das "nur" für die Validierung oder generell? Würde ja dann heißen, dass ich vom heutigen Tag an einfach alle meine Webseiten als 8859-1 ausweise und kein einziges Zeichen mehr durch Entities ersetzen müsste. Stimmt das?
Wenn ja, gabs das vor 3 oder 4 Jahren auch schon, oder warum wurde das damals überall angepriesen?
MfG
Rouven
Rouven,
mal so eine Ergänzungsfrage dazu: Gilt das "nur" für die Validierung oder generell?
Was den strengen Validator überzeugt, sollte für fehlertolernte Browser erst recht verständlich sein.
Würde ja dann heißen, dass ich vom heutigen Tag an einfach alle meine Webseiten als 8859-1 ausweise und kein einziges Zeichen mehr durch Entities ersetzen müsste. Stimmt das?
Nein. Du kannst nicht deine Webseiten als irgendwas ausweisen, sondern musst diejenige Zeichencodierung angeben, mit der du dein Dokument abgespeichert hast.
Mit ISO 8859-1 kannst du nicht alle Zeichen codieren, sondern nur 256 (wobei da auch Steuerzeichen darunter sind). Von „kein einziges Zeichen mehr durch Entities ersetzen“ kann keine Rede sein, mit ISO 8859-1 lässt sich das €-Zeichen ebensowenig codieren wie „, “, –, …; dafür müsstest du weiterhin €, „, “, –, … schreiben.
Das sparst du dir, wenn du UTF-8 als Codiereung wählst, damit lassen sich alle UCS-/Unicode-Zeichen codieren. (Die Zeichen <, >, &, ", ', die in HTML/XML eine Sonderbedeutung haben, müssen selbstverständlich weiterhin durch Entities oder NCRs maskiert werden.)
Wenn ja, gabs das vor 3 oder 4 Jahren auch schon, oder warum wurde das damals überall angepriesen?
Ja, gab’s schon. Wer weiß, wem du da auf den Leim gegangen bist.
Das Archiv ist übrigens voll mit Threads zu Zeichencodierungen, der letzte war erst vor wenigen Tagen.
Live long and prosper,
Gunnar
Hallo Rouven
mal so eine Ergänzungsfrage dazu: Gilt das "nur" für die Validierung oder generell?
Soweit mir bekannt ist, ja.
Würde ja dann heißen, dass ich vom heutigen Tag an einfach alle meine Webseiten als 8859-1 ausweise und kein einziges Zeichen mehr durch Entities ersetzen müsste. Stimmt das?
Nein, nur die Zeichen, die in der gewählten Zeichenkodierung enthalten sind.
s. Liste der ISO-8859-Zeichensätze
Der Server darf keine andere Zeichenkodierung im HTTP-Header angeben.
s. unter "Beachten Sie:" bei Angabe zum Zeichensatz
Anmerkung:
In Selfhtml steht an vielen Stellen noch Zeichensatz, wenn die
Zeichenkodierung gemeint ist.
... oder warum wurde das damals überall angepriesen?
Es ist eine Möglichkeit, wenn ich keinen Einfluss darauf habe, wie der
Server die Seiten ausliefert.
Außerdem benötige ich diese Möglichkeit für Zeichen, die in der verwendeten
Zeichenkodierung nicht enthalten sind.
Auf Wiederlesen
Detlef
Hallo,
da dein Dokument in XHTML erstellt ist, wird (bzw. sollte) das Meta-Tag nicht beachtet (werden). Demnach ist es egal ob dort ISO-8859-1 oder blabal steht.
Wenn ein Validator trotzdem sagt das dieses Dokument valide ist, dann sendet entweder Dein Server den Charset im HTTP-Header, oder Du hast am Anfang des Dokumentes eine XML-Deklaration mit einer Zeichensatzangabe stehen.
Ansonsten kann nicht festgestellt werden mit welchem Zeichensatz das Dokument kodiert ist (zumindest bei fehlender XML-Deklaration).
Wenn der Header und die XML-Deklaration fehlt, muss laut Spezifikation UTF-8 für die Verarbeitung zugrunde gelegt werden.
Sowohl der W3C-Validator als auch validome.org arbeiten diesbezüglich falsch und benutzen das Meta-Tag, wobei Validome momentan überarbeitet wird, so das solche Fehler zukünftig gemeldet werden.
Grüße
Thomas Mell