Hallo,
und weil das Dokument mit einer BOM beginnt, erkennt der Browser die Codierung auch korrekt als UTF-8.
„Der Browser“? Nein! IrgendEin von unbeugsamen Redmondern entwickelter Browser hört nicht auf, Widerstand zu leisten.
na toll, der schon wieder. War ja fast klar. ;-)
Früher hat er ja sogar gern mal den übermittelten Content-Type ignoriert und stattdessen anhand der ersten paar hundert Bytes Nutzdaten selbst geraten. Tun aktuelle Versionen das auch immer noch?
Eine BOM (Byte Order Mark) ist ein Steuerzeichen, das vom Editor am Dateianfang eingefügt wird und der verarbeitenden Software (z.B. dem Browser) die verwendete Codierung mitteilt.
Sofern es sich um eine Unicode-Codierung handelt.
Äh, ja richtig. Sie teilt einerseits die Tatsache mit, dass eine Unicode-Codierung verwendet wird, und noch dazu, welche und in welcher Variante.
Und das BOM
Das? Egal ob ich Byte Order Mark letztendlich mit "Marke" oder "Markierung" übersetze, es ist in beiden Fällen "die". Wovon gehst du aus?
teilt nicht die verwendete Codierung mit, sondern die Reihenfolge der Bytes
Auch die Codierung an sich, denn man kann daran auch UTF-8 von UTF-16 (und vermutlich auch von UTF-32) unterscheiden.
Bei UTF-8 ist die Reihenfolge der Bytes festgelegt; ein BOM also nicht erforderlich.
Richtig. Aber am Vorhandensein der magischen drei Bytes kann man UTF-8 dennoch erkennen.
EDIT: Kann es sein, dass der Validator die BOM ignoriert und deshalb von ISO-8859-1 ausgeht?
Sieht so aus. Und DER Validator tut das auch.
Das ist nicht schön. :-(
Dann läge in diesem Fall der Fehler nicht nur beim Autor, sondern auch beim Validator.
Die Nichtbeachtung des BOM ist ein Bug. Fehlerhaftes ISO 8859-1 als Windows-1252 zu verarbeiten ist ein Feature.
Ja. Aber UTF-8 mit oder ohne BOM zu servieren, dann aber im HTTP-Header ISO-8859-1 anzugeben, ist IMO auch ein Bug. Der des Autors, den ich hier meinte.
Ciao,
Martin