Charset UTF-8 vs. ISO 8859-1
Charles
- html
Hallo, eine Beobachtung, die ich gerade zufällig gemacht habe:
Auf der Startseite von SELFHTML (http://de.selfhtml.org/) finde ich im HEAD-Teil den Tag:
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
Hier im Forum hingegen finde ich auf der Startseite (http://forum.de.selfhtml.org/):
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
Auf folgenden Seiten des Forums (z.B. neue Nachricht verfassen) wird dann wieder ISO als Zeichensatz definiert.
Was steht dahinter für eine Überlegung? Oder ist es im Prinzip egal, welche von beiden Zeichensatz-Deklarationen ich angebe?
Charles
Hallo,
Hallo, eine Beobachtung, die ich gerade zufällig gemacht habe:
Auf der Startseite von SELFHTML (http://de.selfhtml.org/) finde ich im HEAD-Teil den Tag:
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
Die Dokumentation ist technisch noch ziemlich veraltet (Quirksmode, Tabellen-Layouts, Entities für alle nicht-Ascii-Zeichen). Ich denke früher war UTF-8 noch nicht so populär und wenn man überlegt, dass Netscape 4 noch fast vollständig berücksichtigt wird, klingt es logisch, dass die Texte in den ganz alten Browsern (noch älter als NS4), die noch kein UTF-8 konnten zumindest lesbar sein sollten. Heute spielt das aber wirklich keine Rolle mehr…
Hier im Forum hingegen finde ich auf der Startseite (http://forum.de.selfhtml.org/):
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
Das liegt einfach daran, dass es leichter ist, die Texte direkt so abzuspeichern, wie sie eingegeben werden, als alles erst zu maskieren.
Allerdings war das anfans noch eine ziemlich wackelige Angelegenheit:
Aus dem 1. Posting des Forums:
<blockquote>
„Thema "Umlaute": es funktioniert hier in der Regel zwar auch mit Umlauten, aber im Hinblick auf die Vielfalt der Betriebssysteme und Rechner, mit denen die Leute unterwegs sind, ist es doch sinnvoll, Umlaute mit ae, oe, ue und ss zu umschreiben.“
</blockquote>
Heutzutage existiert dieses Problem eigentlich gar nicht mehr.
Auf folgenden Seiten des Forums (z.B. neue Nachricht verfassen) wird dann wieder ISO als Zeichensatz definiert.
Komisch. Bei mir nicht…
Was steht dahinter für eine Überlegung? Oder ist es im Prinzip egal, welche von beiden Zeichensatz-Deklarationen ich angebe?
UTF-8 enthält alle Zeichen, die in Unicode definiert sind. Die ISO-kodierung scheitert dagegen schon an den typographischen Anführungszeichen „“. In der älteren ISO8859-1 fehlt sogar das €-Zeichen.
mfg. Daniel
Hello out there!
In der älteren ISO8859-1 fehlt sogar das €-Zeichen.
„Ältere“?? Gibt’s etwa eine neue Version von ISO 8859-1?
Es gibt aber ISO 8859-15.
See ya up the road,
Gunnar
Hallo Gunnar,
In der älteren ISO8859-1 fehlt sogar das €-Zeichen.
„Ältere“?? Gibt’s etwa eine neue Version von ISO 8859-1?
ISO 8859-1 ist älter als U(nicode|TF-8).
Viele Grüße aus Freiburg,
Marian
Hallo,
In der älteren ISO8859-1 fehlt sogar das €-Zeichen.
Es gibt aber ISO 8859-15.
Die meinte ich. Sorry, wenn das nicht ganz klar rüberkam.
mfg. Daniel
Hallo,
Auf der Startseite von SELFHTML (http://de.selfhtml.org/) finde ich im HEAD-Teil den Tag:
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">Die Dokumentation ist technisch noch ziemlich veraltet (Quirksmode, Tabellen-Layouts, Entities für alle nicht-Ascii-Zeichen).
Für UTF-8 in der statischen Dokumentation besteht derzeit keine dringende Notwendigkeit, weil Zeichen außerhalb von ISO-8859-1 extrem selten vorkommen. Entities für alle Nicht-ASCII-Zeichen gibt es nicht mehr. Das gesamte statische SELFHTML-Angebot benutzt momentan ISO-8859-1. Das ist auch keine veraltete Praxis, sondern nach wie vor eine mögliche Option.
Dass im Forum UTF-8 verwendet wird, hat spezielle Gründe, die sich so nicht auf die Dokumentation übertragen lassen: Das Forum lebt vom Eingeben von Texten im Browser. Hier ISO-8859-1 zu verwenden, führte dazu, dass Browser unvorhersehbar reagieren, wenn Zeichen, die nicht in ISO-8859-1 vertreten sind, in die Formularfelder eingegeben werden. Manche Browser nehmen dann einfach ungefragt UTF-8 als Kodierung für die Formulardaten, andere senden diese Zeichen als numerische Zeichenreferenzen. Die Forumssoftware ist daher sehr tolerant geschrieben. Mit UTF-8 als einheitlicher Kodierung für Ausgabe, Speicherung und Eingabe versucht sie, die Browser zu vorhersehbaren Resultaten zu bringen, nämlich möglichst UTF-8-kodierte Formulardaten zu senden.
Mathias
Hallo,
Entities für alle Nicht-ASCII-Zeichen gibt es nicht mehr. Das gesamte statische SELFHTML-Angebot benutzt momentan ISO-8859-1.
Hm, in der Doku selber scheint das wirklich nicht mehr der Fall zu sein. Dafür befindet sich auf jeder Beispielseite aber folgender Link:
<a href="[Doku]">Zurück</a>
Den Rest hatte ich noch nicht so genau inspiziert ;-)
mfg. Daniel
Hallo,
Ich hab da ne Frage zu dem Thema. Wenn eine Seite im HTTP-Header keinen Zeichensatz angibt, welcher Zeichensatz gilt dann als default? http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.4.1 sagt wohl irgendwie ISO-8859-1 wenn ich das richtig errate, wobei das auch nur indirekt angesprochen wird da. Oder kennt jemand noch was anderes?
Ist das dann wirklich notwendig das (X)HTML zu Parsen und nach <?xml version="1.0" encoding="UTF-8" ?>
, bzw. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
zu suchen?
Grüße
Jeena Paradies
Hello out there!
Ich hab da ne Frage zu dem Thema. Wenn eine Seite im HTTP-Header keinen Zeichensatz angibt, welcher Zeichensatz gilt dann als default?
Du meinst, welche Zeichencodierung?
Bei XML-Dokumenten (also auch XHTML, 'application/xhtml+xml') ohne Angabe der Zeichencodierung in der XML-Deklaration und ohne BOM UTF-8, mit BOM je nach diesem UTF-8 oder UTF-16.
„Ebenso ist es ein Fehler, wenn ein Entity, das weder mit einer Byte-Order-Markierung noch mit einer Kodierungsdeklaration beginnt, eine andere Kodierung als UTF-8 benutzt. Beachten Sie, dass wegen der Tatsache, dass ASCII eine Teilmenge von UTF-8 ist, ASCII-Entities nicht unbedingt eine Kodierungsdeklaration brauchen.“ [XML §4.3.3]
Bei HTML-Dokumenten und XHTML-Dokumenten, die der UA für HTML hält ('text/html'), gilt ohne 'meta'-Angabe AFAIK ISO 8859-1.
Ist das dann wirklich notwendig das (X)HTML zu Parsen und nach
<?xml version="1.0" encoding="UTF-8" ?>
, bzw.<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
zu suchen?
Ja, sonst würde ja der jeweilige Default gelten und bei von diesem abweichender Zeichencodierung das Dokument falsch decodiert werden.
See ya up the road,
Gunnar
Hallo,
Danke für deine ausführliche Antwort.
Ja, sonst würde ja der jeweilige Default gelten und bei von diesem abweichender Zeichencodierung das Dokument falsch decodiert werden.
Hm, da Scheiden sich wohl die Geister. Ich habe gerade mit Christian Kruse darüber gesprochen und er war der Meinung dass die Sachen innerhalb des HTML den HTTP-Header-Default-Wert nicht überschreiben.
Grüße
Jeena Paradies
Hello out there!
Ich habe gerade mit Christian Kruse darüber gesprochen und er war der Meinung dass die Sachen innerhalb des HTML den HTTP-Header-Default-Wert nicht überschreiben.
Womit er ja völlig recht hat.
Er ging dir doch gerade darum, was ist, „wenn eine Seite im HTTP-Header keinen Zeichensatz angibt“. Dann gilt für 'text/html' die HTTP-EQUIV-Angabe.
Ist eine Angabe im HTTP-Header, hat diese Priorität.
See ya up the road,
Gunnar