Hallo Thomas
Den Zeichensatz innerhalb des Dokuments zu definieren, dass in benutzt ist allerdings schwierig.
Vor allem bei Metatags weiß der Browser noch nicht einmal genau, wo er die Angabe findet.
Was ist mit (bei Metatags weiß der Browser noch nicht) gemeint und was mit (wo er die Angabe findet)?
Der Browser bekommt das Dokument und fängt es an zu verarbeiten. Er kann zu diesem Zeitpunkt noch nicht wissen, welchen Zeichensatz das Dokumment verwendet. (Außer, dieser wird im HTTP-Header mitgeliefert, was der Fall sein sollte.
Der validator meldet sogar einen Fehler, wenn im HTTP-Header ein Zeichensatz steht und im Dokument ein anderer angegeben ist)
Ohne den Zeichensatz zu kennen kann ein Browser das Dokument theoretisch nicht verarbeiten. Er muss also entweder raten oder hoffen, dass das Dokument mit Asciizeicehn beginnt, was fast immer der Fall ist, da die meisten Zeichensätze den ASCII-Zeichensatz nur erweitern.
Wo die Metatags im Dokument stehen, ist nicht sicher.
Es können etliche Angaben vorher kommen. Bei XML z.b. müsste die Zeichensatzangabe schon ganz am Anfang stehen, was die Erkennung erheblich vereinfacht.
Mir ist jetzt klar geworden, dass eine Umschreibung ohne einen Zeichensatz-Bezug Unsinn ist,
weil die Umschreibung nichts anderes macht, als einen Byte-Wert an der betreffenden Stelle im
HTML-Dokument zu "setzen". Und diser Byte-Wert bezieht sich auf einen bestimmten Zeichensatz
Die Umschreibung, falls Du damit < u.a. meinst, bezieht sich nicht auf einen Zeichensatz. Damit werden direkt Zeichen festgelegt. Auch die Umschreibungen wie &#xHH; beziehen sich nicht auf den Zeichensatz des Dokuments sondern immer auf Unicode.
Man kann damit auch Zeichen verwenden, die nicht im Zeichensatz des Dokuments enthalten sind.
wenn dieser nicht zur Verfügung steht, gibt es auch nicht 100% das umschriebene Zeichen an dieser Stelle.
Gut. Und wie sind nun Schriftart und Zeichensatz "verzahnt"?
Der Zeichensatz bekommt den Byte-Wert und ordnet diesem ein Zeichen zu.
Die Schriftart bekommt dann den Auftrag vom Zeichensatz dieses Zeichen bitte darzustellen.
Und alle hoffen, das die Schriftart es kann.
Jetzt hab ichs einigermassen kapiert, oder?
Ja.
Ist es nicht eher "unsauber" Umlaute nicht zu maskieren?
Nein, das ist nicht Unsauber.
Kann ich hier noch ein Argument haben? Für die Praxis, wann maskieren und wann nicht?
Immer dann maskieren, wenn Du ein Zeichen haben willst, dass nicht im Zeichensatz vorkommt.
Du kannst natürlich auch direkt Unicode verwenden. Dann brauchst Du gar nicht mehr zu maskieren (abgesehen von <>&"')
Für Unicode brauchst Du allerdings einen entsprechenden Editor.
Wo finde ich noch weitere Angabe zum Default-Zeichensatz (Meta-Angabe), ausser:
Beim W3C solltest Du was dazu finden.
Bei der Verwendung von XHTML müsste sich die Metaangabe aber eigentlich erübrigen. Da man da den Zeichensatz schon am Anfang angeben muss.
Grüße
Daniel