Hallo,
Danke für die sehr interessante Ausführung.
Kannst mir ein wenig umfassender und „for stupids“ aufzeigen,
wie der Zusammenhang dieser Aspekte ist:
- gewähltem Zeichensatz im Browser
Moderne Browser lassen einen einen „Default-Charset“ wählen, der verwendet wird, wenn die Webseite (fälschlicherweise) keinen angibt.
Im HTTP-Header, der üblicherweise so aussieht:
Content-Type: text/html; charset=utf-8
# oder
Content-Type: application/xhtml+xml; charset=iso-8859-1
(wobei der IE5 und IE6 letzteres nicht anzeigt, sondern abspeichern will, wird also kaum verwendet), gibt an, ich welchem Charset das HTML-Dokument kodiert ist.
Wenn man keinen Zugang zu den HTTP-Headern hat, kann man mit
den Content-Type auch im HTML-Dokument selbst festhalten.
Umlaute sind außerhalb des ASCII-Zeichensatzes (das sind nur die 127 Zeichen), d.h. in verschiedenen Charsets werden sie unterschiedlich kodiert.
Das große ‚Ä‘ ist z.b. 0xC3 in latin1 aka iso-8859-1, in UTF-8 wird es in zwei Bytes kodiert, das kleine ‚ä‘ in UTF-8 wäre z.B. 0xC3 0xA4
Anders gesagt, wie programmiere ich eine HTML / XHTML Site,
dass der gewählte Zeichensatz im Browser die Umlaute nicht
falsch darstellt?
- Du weißt, in welchem charset dein Editor die Dateien abspeichert
- Du gibst dem HTTP-Header und/oder der Datei (über -Tag) diese Kodierung mit.
Ich persönlich wähle inzwischen nur noch UTF-8, weil ich in meinen Homepages auch „user generate content“ habe, und ich meine Benutzer auf die 256 Zeichen von latin1 beschränken will.
Wie kann der Benutzer damit umgehen? Soll er jedesmal alle
Zeichensätze ausprobieren? :-/
Nein, die Angabe des Charsets sorgt dafür, dass man nicht ausprobieren muss - der Browser wählt automatisch den richtigen.
Grüße,
Moritz