Zeichensatzangabe
Manfred Hofschneider
- html
Hallo,
ich schreibe eine Website mit folgender Angabe
<!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">
<head><title>Demo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
Wenn ich nun im Text ein Sonderzeichen, wie etwa einen Accend oder Umlaut habe, so meint der Validator
Benutzte Zeichenkodierung: utf-8
Quelle: Fallback
Schwerer Fehler
Im Dokument befindet sich in Zeile 33 und Spalte 38 ein ungültiges Zeichen.
Dieses Zeichen ist in der verwendeten Zeichensatzkodierung (utf-8) nicht erlaubt.
Aber ich habe doch im Metatag einen Zeichensatz angegeben.
Was mache ich falsch?
Gruss
Manne
Hi
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
probiers mal mit
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
THX
Hi
Das ist natürlich dasselbe...
Der unterschied zu dem von mir getesteten liegt hier:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
Ich denke der springende punkt ist der Unterschied strict/Transitional
THX
Hi - ich binns schon wieder
Habe kurz mit dem Validator etwas gespielt und den http://validator.w3.org/docs/help.html#faq-doctype@title:Hinweis auf einrichtiges Doctype gefunden...
Rausgekommen ist volgendes:
<!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" lang="en" xml:lang="en">
<head>
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1" />
<title>Test</title>
</head>
<body>
<p>äöü</p>
</body>
</html>
THX
danke Nimble,
klappt aber leider nicht,
hier der Link http://www.laura-cave.com/lc_t/lc_1030_en.html
Hallo Manfred,
<!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"><head><title>Demo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
Das sieht auf der ersten Blick korrekt aus.
Aber ich habe doch im Metatag einen Zeichensatz angegeben.
Was mache ich falsch?
Die Angabe im Meta-tag spielt nur eine Rolle, wenn du dir die Seite lokal auf deinem Rechner ansiehst. Ansonsten gilt die Angabe, die dein Server im header deiner Seite macht. Da steht dann halt drin "content-type=text/html" und "charset=iso-8859-1" je nach Konfiguration des Servers.
Das ist in deinem Fall aber glaube ich nicht der Grund für die Fehlermeldung des Validators. In XML-Dokumenten so wie XHTML eines ist benötigst du in der ersten Zeile die Angabe <?xml version="1.0" encoding="iso-8859-1"?> wenn du eine andere Version als den Standardwert 1.0 oder einen anderen Zeichensatz als den Standardwert utf-8 willst.
Da diese Angabe fehlt, nimmt der Validator die Standardwerte version 1.0 und encoding utf-8 an. Deshalb kommt die Fehlermeldung mit der falschen Zeichenkodierung.
gruss,
OhneName
Hallo,
ja, aber wenn ich die Angabe <?xml version="1.0" encoding="iso-8859-1"?> benutze, setzt das den Internet Explorer in den Quirks Mode und zerhaut mit mein externes CSS-Style-Sheet.
Gibt es noch eine andere Möglichkeit?
Gruss
Manne
Hallo Manfred,
jaja das Sorgenkind IE.
Was spricht dagegen durchgängig utf-8 als Zeichensatz zu verwenden? Da utf-8 Standard ist, benötigst du die xml-Deklaration nämlich nicht und der Fehler würde verschwinden.
gruss,
OhneName
Hallo,
Was spricht dagegen durchgängig utf-8 als Zeichensatz zu verwenden? Da utf-8 Standard ist, benötigst du die xml-Deklaration nämlich nicht und der Fehler würde verschwinden.
deswegen:
Das Dokument ist nicht valides XHTML 1.0 Strict
Benutzte Zeichenkodierung: utf-8
Quelle: Fallback
Hinweise
Dieses XHTML 1.0-Dokument wurde mit dem MIME-Type text/html ausgeliefert, der jedoch nicht verwendet werden sollte, wenn das Dokument nicht den Richtlinien zur Kompatibilität mit HTML entspricht.
Es wurde keine Zeichensatzkodierung gefunden. Aus diesem Grund wurde UTF-8 verwendet.
nach oben
Schwerer Fehler
Im Dokument befindet sich in Zeile 57 und Spalte 32 ein ungültiges Zeichen.
Dieses Zeichen ist in der verwendeten Zeichensatzkodierung (utf-8) nicht erlaubt.
Hallo Manfred,
ja das ist die altbekannte Fehlermeldung. Die kenn ich schon. Ich meinte öffne deine HTML-Datei mit einem guten(!) Editor, ersetze im meta-Tag iso-8859-1 durch utf-8, gehe dann auf als utf-8 abspeichern. Dann sollte der Fehler behoben sein, ganz ohne die lästige xml-Deklaration. Wichtig ist, dass dein Editor dir die Möglichkeit gibt die Datei utf-8 kodiert abzuspeichern, sonst hast du ne richtige Mogelpackung wo außen jetzt zwar utf-8 draufsteht, aber der Inhalt immer noch falsch kodiert ist.
gruss,
OhneName
PS: Wenn dein Editor das nicht kann, empfehl ich dir notepad2!
Hi,
Gibt es noch eine andere Möglichkeit?
Ja. Sorge dafür, daß der Webserver die korrekte Encoding-Angabe im content-type-Header mitliefert.
cu,
Andreas