city2000: Zeichensatzproblem: ungültiges Zeichen

Hallo,
nach der Umstellung mehrerer Seiten auf XHTML mit u.a.
folgenden Angaben

<!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">

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

ergeben bei einigen Seiten beim Validieren folgenden Fehler:

Im Dokument befindet sich in Zeile 139 und Spalte 8 ein ungültiges Zeichen.
Dieses Zeichen ist in der verwendeten Zeichensatzkodierung (utf-8) nicht erlaubt.

Hierbei handelt sich um Anführungszeichen innerhalb eines Zitats.

Wie muss die korrekte Beschreibung lauten, damit die Validierung klappt?

Danke und Gruss

  1. Hallo,

    nach der Umstellung mehrerer Seiten auf XHTML mit u.a. folgenden Angaben

    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

    ergeben bei einigen Seiten beim Validieren folgenden Fehler:

    Im Dokument befindet sich in Zeile 139 und Spalte 8 ein ungültiges Zeichen.
    Dieses Zeichen ist in der verwendeten Zeichensatzkodierung (utf-8) nicht erlaubt.

    Huch, der Validator geht von UTF-8 aus? Dann ignoriert er wohl die meta-Angabe.

    Siehe Unterschied zwischen HTML und XHTML: Die XML-Deklaration und die Zeichenkodierung:

    Die Standardkodierung eines X(HT)ML-Dokuments ist UTF-8. Die Angabe in einem solchen meta-Element ist aus XML-Sicht irrelevant. Wenn du eine andere Kodierung als UTF-8 verwendest, musst du diese in einer XML-Deklaration mittels <?xml version="1.0" encoding="iso-8859-1"> angeben. Da dies einige dort beschriebene Nachteile hat, ist die letztliche Lösung die Verwendung der Kodierung UTF-8 anstatt ISO 8859-1.

    Siehe dazu auch diesen Forumsbeitrag.

    Hierbei handelt sich um Anführungszeichen innerhalb eines Zitats.

    Das weist auf ein weiteres Problem hin, oder vielleicht ist es das Hauptproblem: Wenn du die Anführungszeichen „…“, ‚…‘ oder ›…‹ verwendest, kannst du sie nicht direkt als ISO 8859-1 abspeichern, denn sie sind nicht in deren Zeichenvorrat vorhanden, siehe Codetabelle von ISO 8859-1.

    Du müsstest numerische Zeichenreferenzen bzw. Entity-Referenzen verwenden, siehe Allgemeines zu Zeichen in HTML und Zeichenreferenz. „ könntest du etwa durch &#8222; oder &bdquo; ersetzen und so weiter. Oder du verwendest einfach UTF-8 wie oben beschrieben.

    (Ferner habe ich die vage Vermutung, dein Editor könnte die Anführungszeichen mit der Kodierung Windows-1252 gespeichert haben, denn in dessen Codetabelle kommen einige Anführungszeichen vor. Aber das wird sich zeigen.)

    Mathias

    1. vielen Dank, werde es gleich probieren