Axel Richter: UTF-8, BOM und Kodierungserkennung durch Editoren

Beitrag lesen

Hallo,

SELFHTML will z.B. auf UTF-8 einstellen; jetzt denke ich an die Durchschnittsuser, die die Datei öffnen.

UTF-8 und ISO-8859-1 kann man ja nicht maschinell unterscheiden, aber ein BOM ist für einen Editor glaube ich noch das sicherste Merkmal. Wie sieht es da aus, was macht der Windows-Editor z.B., erkennt er UTF-8 und hat das BOM einen Ausschlag?

Ja und nein ;-). Notepad ab Windows 2000 öffnet UTF-8 codierte Dateien korrekt, sowohl mit und ohne BOM. Speichern kann er aber nur mit BOM (Windows 2000 jedenfalls, XP oder Vista habe ich hier grade nicht). Das gilt sowohl beim direkten Öffnen der Datei als auch bei Ansicht-Quelltext im IE.

Wird eine *.htm(l)-Datei via file-Protokoll im Browser geöffnet, übergibt Windows die Kodierung (UTF-8) an den Browser, wenn die Datei ein BOM hat, ohne wird das default encoding übergeben. Eine Datei mit dem Inhalt:

<p>äöüÄÖÜ</p>

als UTF-8 mit BOM gespeichert, wird also von den Browsern mit der Kodierung UTF-8 empfangen. Die selbe Datei, ohne BOM gespeichert, benötigt hierfür ein:

<meta http-equiv="content-type" content="text/html; charset=utf-8" />

Allerdings hat die BOM auch Nachteile, beispielsweise muss man es konsequent in allen Ressourcen (CSS, JavaScript) verwenden, kann also in ein UTF-8(BOM)-HTML-Dokument keine ISO-kodierte CSS Ressource einbinden und auch keine BOM-Ressource in ein BOM-loses Dokument. Jedenfalls erinnere ich das so ;-), in der Praxis nutze ich nie ein BOM.

viele Grüße

Axel