Thomas Luethi: Zeichensatz eines Windows-Arbeitsplatzes

Beitrag lesen

Hallo,

Ich erlaube ich mir auch noch ein paar Anmerkungen und Ergaenzungen.

Der Fehler liegt hier IMHO eindeutig bei den Leuten von sankt-andreasberg.de:
http://sankt-andreasberg.de/de/index.shtml

Die liefern weder per HTTP
http://cgi.w3.org/cgi-bin/headers?url=http%3A%2F%2Fsankt-andreasberg.de%2Fde%2Findex.shtml
noch im Quelltext (als Meta-Tag)
view-source:http://sankt-andreasberg.de/de/index.shtml
eine Charset-Angabe, was z.B. dazu fuehrt, dass der HTML-Validator
sich weigert, die Seite ueberhaupt anzuschauen:
http://validator.w3.org/check?uri=http%3A%2F%2Fsankt-andreasberg.de%2Fde%2Findex.shtml

Aber eigentlich muss eine Webseite ihre Codierung selbst mitschicken, wenn sie es nicht macht, dann hat der Autor versagt.

Genau.

Gemaess der HTML 4.01-Spezifikation sollte jedes Dokument
eine Charset-Angabe haben, entweder vom Webserver her im
HTTP-Header ("staerker") oder im HTML-Quellcode in einem
META-Tag ("schwaecher"), siehe:
http://www.w3.org/TR/html401/charset.html#idx-character_encoding-6
Was XHTML angeht, siehe:
http://www.w3.org/TR/xhtml1/#C_9
http://www.dodabo.de/charset/#xhtml

@Kalle:
Bei einer korrekten Charset-Angabe koennen Umlaute (ä, ö, ü)
auch direkt im Quellcode stehen. Die Schreibweise mit
Entities (ä ö ü) ist ueberhaupt nicht
zwingend vorgeschrieben. Siehe:
http://www.dodabo.de/charset/#s2

Entities fuer Umlaute sind IMHO nur "notwendig", wenn man mit
untauglichen Werkzeugen arbeitet, welche mit den Charsets
nicht klarkommen (z.B. HTML-Editor, Betriebssystem des Autors
oder des Webservers, FTP-Client und -Server, Webserver ...)

Und sollte keine Codierung kommen, so kann es sein, dass der Browser noch selbst versucht sie zu erraten.

Gemaess HTTP/1.1 (RFC 2616) sollte er dann annehmen, dass es ISO-8859-1 ist:
http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.7.1
  "When no explicit charset parameter is provided by the sender,
   media subtypes of the "text" type are defined to have a default
   charset value of "ISO-8859-1" when received via HTTP."

Dies wird wieder aufgehoben in der HTML 4.01 Specification:
http://www.w3.org/TR/html401/charset.html#h-5.2.2
  "[...] user agents must not assume any default value for the
   'charset' parameter."

Fuer _diesen_ Fall, naemlich dass der Autor unfaehig war,
eine Charset-Angabe zu machen, kann man im Browser
manuell ein Charset auswaehlen, das er anwenden soll.
Bei deutschsprachigen Seiten, die auf einem Windows-
Rechner geschrieben wurden, ist dann ISO-8859-1
meist eine brauchbare Loesung.

(Ich habe hier jedenfalls ein Character-Coding welches ich auf Auto Detect stellen kann, aber was da genau dahintersteckt weiß ich nicht.)

Was es mit den "Auto Detect" Einstellung von Mozilla auf
sich hat, habe ich auch nicht recht herausgefunden.
Es war bei mir auf "off", und ISO-8859-1 war irgendwie
voreingestellt. Die Seite
http://www.kreml.ru/main.asp
wurde somit zuerst mal kaputt angezeigt, weil sie keine
Charset-Angabe mitliefert. Mit
View -> Character Coding -> Auto-Detect -> Universal
(oder auch Auto-Detect -> Russian) waehlt Mozilla dann
das richtige Charset, naemlich Cyrillic (windows-1251).
Der "Rate-Algorithmus" scheint zu funktionieren ...

IMHO sollte automatische Erkennung des _angegebenen_
Charsets die Standard-Einstellung bzw. das Standard-Verhalten
jedes Browser sein. Ein Browser sollte IMHO schauen,
was die Ressource fuer ein Charset angibt (HTTP bzw. Meta)
und sich danach richten.

Nur wenn eine Ressource keine Charset-Angabe oder
eine falsche Angabe hat, ist es IMHO ueberhaupt sinnvoll
und z.T. notwendig, im Browser "manuell" ein Charset
auszuwaehlen, um die Sonderzeichen korrekt anzuzeigen.

Mit einer fixen Einstellung, z.B. auf ISO-8859-1 (oder mit
nachtraeglicher manueller Auwahl eines Charsets) kann man
natuerlich auch bei Seiten, die ein anderes Charset verwenden
und dieses auch angeben, eine "falsche" Darstellung erhalten,
weil die manuelle Auswahl im Browser eben die korrekte Angabe
der Seite "uebersteuert".

Gruesse,

Thomas

--
Bitte keine Mails mit Fachfragen - dafuer gibt es das Forum!
Ich mag es, wenn URLs verlinkt sind (</faq/#Q-19>).
Oft gestellte PHP-Fragen beantwortet die dclp-FAQ bestens: http://www.dclp-faq.de/