utf-8 und firefox
photoelse
- barrierefreiheit
Hallo,
ich habe zwei simple html dateien, welche im Firefox anders dargestellt werden, als im IE (Vers. 6, 7 und 8)
Hier meine Dateien:
Datei 1
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
<title>Test</title>
</head>
<body>
<h1>Hänsel & Gretel</h1>
</body>
</html>
Anzeige im IE = Hänsel & Gretel
Anzeige im FF = H�nsel & Gretel
Datei 2
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
<title>Test</title>
</head>
<body>
<h1>Hänsel & Gretel</h1>
</body>
</html>
Anzeige im IE = Hänsel & Gretel
Anzeige im FF = Hänsel & Gretel
Ich war jedoch eigentlich der Ansicht, dass die Umlaute mit einer Codierung in UTF-8 nicht mehr mit den Entities ausgezeichnet werden brauchen. Nur scheint das der FF nicht zu verstehen.
Kennt jemand eine Lösung?
Moin
Ich war jedoch eigentlich der Ansicht, dass die Umlaute mit einer Codierung in UTF-8 nicht mehr mit den Entities ausgezeichnet werden brauchen. Nur scheint das der FF nicht zu verstehen.
Das ist auch korrekt.
Kennt jemand eine Lösung?
Ja, du musst dem Firefox "sagen" das das Dokument UTF-8-Kodiert ist.
Dies tust du durch das Einfügen des folgenden Meta-Tags im Headbereich:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Und schon stellt auch der Firefox alles richtig dar (mit dem ersten Beispiel).
Als Erklärung. Dein Firefox weiß nicht welches charset deine Webseite benutzt (da nicht angegeben) damit nutzt er die Grundeinstellung, die du über Ansicht->Zeichenkodierung ändern kannst.
Da dort ISO-8859-1 eingestellt sein wird (du hast ja sicher die deutsche Version des FF installiert) dekodiert er deine Webseite auch entsprechend.
Wenn du mittels Metatags das richtige charset angibst, weiß auch der FF wie er deine Webseite dekodieren muss.
Gruß Bobby
@@Bobby:
nuqneH
Ja, du musst dem Firefox "sagen" das das Dokument UTF-8-Kodiert ist.
Ja, das müsste man, wenn es denn so wäre. Ist es aber nicht.
Wäre das Dokument UTF-8-codiert, stände für U+00E4 'ä' die Bytesequenz C3 A4. Diese gemäß ISO 8859-1 decodiert ergäbe 'ä', nicht jedoch '�'.
Es ist genau andersrum: Das Dokument ist ISO-8859-1-codiert, wird aber UTF-8-decodiert. Für 'ä' steht das Byte E4, was in UTF-8 nicht vorkommen darf, deshalb erscheint '�'.
Qapla'
Moin
Wäre das Dokument UTF-8-codiert, stände für U+00E4 'ä' die Bytesequenz C3 A4. Diese gemäß ISO 8859-1 decodiert ergäbe 'ä', nicht jedoch '�'.
Es ist genau andersrum: Das Dokument ist ISO-8859-1-codiert, wird aber UTF-8-decodiert. Für 'ä' steht das Byte E4, was in UTF-8 nicht vorkommen darf, deshalb erscheint '�'.
OK, hast recht. Sorry. Dann wurde es ISO-kodiert abgespeichert und UTF-8 dekodiert.
Die Lösung für den Fragenden wäre sein Dokument UTF-8 kodiert zu speichern.
Dennoch ist die Angabe des Charset-Meta-Tags empfehlenswert. Das siehst du hoffentlich genauso :D
Gruß Bobby
@@Bobby:
nuqneH
Dennoch ist die Angabe des Charset-Meta-Tags empfehlenswert. Das siehst du hoffentlich genauso :D
Bedingt, denn die HTTP-EQUIV-Angabe wirkt nur, wenn der Server im HTTP-Header keine Angabe zur Zeichencodierung macht. Dort wäre erstmal die richtige Angabe zu tätigen, danach im Dokument in der Meta-Angabe.
Qapla'
Hallo an alle,
danke, der Hinweis von Gunnar war genau der richtige, denn ich hatte die Datei nicht im UTF-8 Format gespeichert, weil der mein Editor - wie ich zwischenzeitlich herausgefunden habe, dieses Format leider noch nicht unterstützt. Mit einem kurzen Schwenk auf das "gute" alte Notepad und dann speichern mit Codierung UTF-8 funzt alles prima.
Somit Problem gelöst und wie meistens sitzt das Problem vor dem Bildschirm. ;-(
Danke, Grüße, Karsten
@@photoelse:
nuqneH
weil der mein Editor - wie ich zwischenzeitlich herausgefunden habe, dieses Format leider noch nicht unterstützt.
Laut deiner Quelle kann er dies ab Version 5.6.2. Upadaten?
Mit einem kurzen Schwenk auf das "gute" alte Notepad und dann speichern mit Codierung UTF-8 funzt alles prima.
Äh Vorsicht! Notepad kann UTF-8 nur mit BOM speichern, was zu Problemen führen kann. [UTF8-BOM]
Verwende einen vernünftigen Editor!
Qapla'
@@Gunnar:
Verwende einen vernünftigen Editor!
Ja, ich teste gerade mal UltraEdit. Sieht viel besser aus.
Danke für Deine Hilfe.
Hallo Bobby,
danke für die schnelle Antwort, aber leider funktioniert das nicht.
Du hast Recht, wenn der FF auf ISO-8859-1 steht, dann wird alles korrekt dargestellt. Ich bin jedoch davon ausgegangen, dass der FF auf automatische Zeichenkodierung stehen kann und dann die Kodierung über die HTML Seite jeweils dynamisch an den Browser übermittelt wird. Dieser würde in meinem Fall auf UTF-8 schwenken, womit aber keine korrekte Darstellung erfolgt.
Mit Deinem Hinweis, den meta-Tag einzufügen, wird die Sache aus meiner Sicht noch verschlimmert, denn dann wird selbst im IE kein korrekter Umlaut mehr dargestellt, wenn ich dort automatische Zeichenkodierung eingestellt habe.
Es klappt nur dann alles in allen unterschiedlichen Browsern, wenn ich weiterhin die entities verwende. Dann ist auch der meta-tag nicht störend, sprich es geht sowohl mit als auch ohne in allen Browsern.
Moin
Mit Deinem Hinweis, den meta-Tag einzufügen, wird die Sache aus meiner Sicht noch verschlimmert, denn dann wird selbst im IE kein korrekter Umlaut mehr dargestellt, wenn ich dort automatische Zeichenkodierung eingestellt habe.
Siehe die Antwort von Gunnar. Du musst das Dokument als UTF-8 abspeichern. Der Metatag ist schon richtig.
Wenn du das Dokument richtig abspeicherst und dem browser den charset mitteilst kann nichts mehr schief gehen. Beachte aber den Hinweis von Gunnar das "&"-Zeichen betreffend.
Gruß Bobby
@@photoelse:
nuqneH
Mit Deinem Hinweis, den meta-Tag einzufügen, wird die Sache aus meiner Sicht noch verschlimmert, denn dann wird selbst im IE kein korrekter Umlaut mehr dargestellt
Was zu erwarten war, weil der IE jetzt auch nicht mehr rät, sondern das Dokument gemäß der Angabe verarbeitet.
Es klappt nur dann alles in allen unterschiedlichen Browsern, wenn ich weiterhin die entities verwende.
Dann hast du ja kein 'ä' im Quelltext, sondern die Zeichen '&', 'a', 'u', 'm', 'l', ';' – alles Basic-Latin-Zeichen (ASCII-Zeichen), die in ISO 8859-1 und UTF-8 gleich codiert werden: 26 61 75 6D 6C 3B.
Qapla'
@@photoelse:
nuqneH
ich habe zwei simple html dateien, welche im Firefox anders dargestellt werden, als im IE (Vers. 6, 7 und 8)
<?xml version="1.0" encoding="utf-8"?>
Ja, IE 6 schaltet in den Quirks-Modus, wenn der DOCTYPE nicht in der ersten Zeile steht. Lass die XML-Deklaration weg!
Anzeige im FF = H�nsel & Gretel
Du hast offenbar das Dokument nicht in UTF-8 gespeichert. [CHANGING-ENCODING]
Ich war jedoch eigentlich der Ansicht, dass die Umlaute mit einer Codierung in UTF-8 nicht mehr mit den Entities ausgezeichnet werden brauchen.
Richtig. In ISO 8859-1 übrigens auch nicht. [ESCAPES]
'&' im Text und Attributwerten muss jedoch immer escapet werden: <h1>Hänsel & Gretel</h1>
[ibid., HTML4 §B.2.2]
Nur scheint das der FF nicht zu verstehen.
Doch, er versteht schon, was ihm gesagt wird. Wenn ihm was Falsches gesagt wird, fängt er allerdings nicht wie IE an zu raten, was der Autor ihm denn eigentlich mitteilen wollte. Kann man dem Fuchs auch nicht verübeln.
Qapla'
<?xml version="1.0" encoding="utf-8"?>
Ja, IE 6 schaltet in den Quirks-Modus, wenn der DOCTYPE nicht in der ersten Zeile steht. Lass die XML-Deklaration weg!
Das ist ein sich hartnäckig haltendes Gerücht. Mit
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xml:lang="de" lang="de">
quirkst nichts mehr wie man hier sehen kann http://devsup.de/ ...
(Einfach mal in den Quelltext schauen ...)
Hallo Wolfgang
Das ist ein sich hartnäckig haltendes Gerücht. Mit
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xml:lang="de" lang="de">
quirkst nichts mehr wie man hier sehen kann http://devsup.de/ ...
Wirklich? Mein 6er IE behauptet „BackCompat”.
Auf Wiederlesen
Detlef
Wirklich? Mein 6er IE behauptet „BackCompat”.
http://browsershots.org/http://devsup.de/
Sorry aber dann müssten wir mal diskutieren was an den Browsershots-Testbedingungen falsch ist.
Hallo Wolfgang
Wirklich? Mein 6er IE behauptet „BackCompat”.
http://browsershots.org/http://devsup.de/
Wo steht dort, dass sich der IE im Standardmodus befindet?
Sorry aber dann müssten wir mal diskutieren was an den Browsershots-Testbedingungen falsch ist.
Wozu?
Habe ich behauptet, dass die Seite im 6er IE falsch, schlecht oder wesentlich anders als in anderen Browsern angezeigt wird?
Auf Wiederlesen
Detlef
@@Wolfgang:
nuqneH
Mit
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xml:lang="de" lang="de">
quirkst nichts mehr
Das wiederum halte ich für ein Gerücht.
Qapla'