Meta-Charset
Jan
- html
0 Ashura0 Tim Tepaße
Hallo,
Ich verwende XHTML 1.0 und möchte Unicode-Zeichen verwenden. Sollte ich dann folgende Metaangabe verwenden?
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
Legt man damit eindeutig die Kodierung fest?
Jan
Hallo Jan.
Ich verwende XHTML 1.0 und möchte Unicode-Zeichen verwenden. Sollte ich dann folgende Metaangabe verwenden?
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
IMHO ist es zum derzeitigen Stand noch immer besser, auch XHTML als text/html auszuliefern. Wenn application/xhtml+xml bei dir unbedingt erforderlich ist, kannst du dies natürlich auch verwenden.
Bedenke aber, dass du womöglich eine Browserweiche für application/xhtml+xml -unfähige Browser einbauen musst.
Legt man damit eindeutig die Kodierung fest?
Eindeutiger wäre es, wenn application/xhtml+xml serverseitig als MIME-Typ gesendet würde, die Priorität liegt hierbei über der Metaangabe.
Gruß, Ashura
Eindeutiger wäre es, wenn application/xhtml+xml serverseitig als MIME-Typ gesendet würde, die Priorität liegt hierbei über der Metaangabe.
Und wenn die eh nicht mitgesendet wird? Dann reicht doch die Metaangabe oder?
Hallo Jan.
Und wenn die eh nicht mitgesendet wird? Dann reicht doch die Metaangabe oder?
Dann _sollte_ der UserAgent diese mitgesendete Metaangabe annehmen und umsetzen. Die Realität sieht meist leider anders aus.
Gruß, Ashura
Dann _sollte_ der UserAgent diese mitgesendete Metaangabe annehmen und umsetzen. Die Realität sieht meist leider anders aus.
Kennst Du Beispiele? Mich würde z. B. interessieren, welche Browser da betroffen sind etc.
Hallo Jan.
Kennst Du Beispiele? Mich würde z. B. interessieren, welche Browser da betroffen sind etc.
Sofern nicht einfach nur eine Metaangabe gesetzt wurde, sondern das betroffene Dokument _tatsächlich_ als UTF-8 gespeichert wurde (zumeist ist das nicht der Fall), sollten hierbei kein UserAgent Probleme haben.
(Ja, meine Aussage war ein wenig zu absolut.)
Es ist aber auch von der Konfiguration des UA abhängig, worauf du wiederum keinen Einfluss hast.
Mein Lynx z. B. zeigt korrekt in UTF-8 gespeicherte Dokumente mit entsprechender Metaangabe, aber ohne serverseitigen Header die Zeichenkette "ÄÖÜ äöü" so an: "AAA ACURAP:A¼".
Beachte deshalb Tim's Tipp.
Gruß, Ashura
Hi,
Und wenn die eh nicht mitgesendet wird? Dann reicht doch die Metaangabe oder?
Dann _sollte_ der UserAgent diese mitgesendete Metaangabe annehmen und umsetzen.
wie soll der User-Agent bitte ein XHTML-Element analysieren können, bevor er weiß, dass es sich um XHTML handelt?
Cheatah
Hallo Cheatah.
Dann _sollte_ der UserAgent diese mitgesendete Metaangabe annehmen und umsetzen.
wie soll der User-Agent bitte ein XHTML-Element analysieren können, bevor er weiß, dass es sich um XHTML handelt?
Gar nicht? Wenn es sich _wirklich_ im XHTML handelt, ist UTF-8 sowieso die Standardkodierung, wie es bei XML ist.
Oder sehe ich das falsch?
Gruß, Ashura
Heißa, Ashura,
wie soll der User-Agent bitte ein XHTML-Element analysieren können, bevor er weiß, dass es sich um XHTML handelt?
Gar nicht? Wenn es sich _wirklich_ im XHTML handelt, ist UTF-8 sowieso die Standardkodierung, wie es bei XML ist.
Oder sehe ich das falsch?
Wie ich das verstehe handelt es sich hier um ein Missverständnis. Während Cheatah meines Erachtens vom Content-Type-Header redet, meinst du die Charset-Angabe. Und ohne dass der Browser mitgeteilt bekommt, dass es sich um XHTML handelt, kann er natürlich auch nicht auf eventuelle XHTML-Tags eingehen (in anständigen Browsern).
Was ohne Charset-Header passiert, weiß ich nicht genau. Irgendwer behauptet, dass in HTTP definiert sei, dass dann ISO-8859-1 verwandt werden solle, irgendwer behauptet, dass in XML UTF-8 Standard sei. Letztendlich halten sich aber die Browser wohl eher an die Benutzereinstellung, bei mir zum Beispiel UTF-8, meistens aber wohl eher ISO-8859-1.
Caramba!
Grüße aus Biberach Riss,
Candid Dauth
Hallo Jan,
Ich verwende XHTML 1.0 und möchte Unicode-Zeichen verwenden. Sollte ich dann folgende Metaangabe verwenden?
Ja, das auch. Vor allem solltest Du aber noch die richtige charset-Angabe über das HTTP-Protokoll senden. Beim Apachen geht das mit einer .htaccess-Datei und der Direktive AddCharset.
Tim