Manolo: Doctype und Umlaute

Hallo,

irgendwie habe ich das mit den Doctypes noch nicht ganz begriffen.

so sieht mein Doctype aus

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

und so die Meta-Angabe

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

Sobald jetzt aber ein Umlaut in einem Feld erscheint, meckert der Validator:

Das Dokument ist nicht valides XHTML 1.0 Transitional
Benutzte Zeichenkodierung:
utf-8

Quelle:
Fallback

Schwerer Fehler
Im Dokument befindet sich in Zeile 81 und Spalte 73 ein ungültiges Zeichen.
Dieses Zeichen ist in der verwendeten Zeichenkodierung (utf-8) nicht erlaubt.

Wieso kommt er darauf, daß ich UTF-8 verwende bzw. was mache ich falsch.

Danke für eine verständliche Fehleranalyse

Mano

  1. moin,

    <meta http-equiv='Content-Type' content='text/html; charset=iso-»» Wieso kommt er darauf, daß ich UTF-8 verwende bzw. was mache ich falsch.

    Gib mal den URI bitte.

    roro

  2. Hi,

    irgendwie habe ich das mit den Doctypes noch nicht ganz begriffen.

    Dein Problem hat mit dem DOCTYPE nichts zu tun.

    <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1' />
    Sobald jetzt aber ein Umlaut in einem Feld erscheint, meckert der Validator:
    Das Dokument ist nicht valides XHTML 1.0 Transitional
    Benutzte Zeichenkodierung:
    utf-8

    Der Server meldet, dass es sich bei der Dokumentkodierung um UTF-8 handelt. Das hat gegenüber dem <meta>-Element Priorität.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hallo Cheatah

      Der Server meldet, dass es sich bei der Dokumentkodierung um UTF-8 handelt. Das hat gegenüber dem <meta>-Element Priorität.

      das mit der Priorität scheint mir logisch, aber wo gebe ich im Doctype an, welche Codierung es sein soll?.

      Mein Ansatz ist der, dass ich ordentlich codieren möchte ( XTHML strict oder wenigstens transitional ) und das wenn möglich mit Umlauten.

      Gruss Mano

      1. Hello out there!

        aber wo gebe ich im Doctype an, welche Codierung es sein soll?.

        Gar nicht.

        Der Server meldet, dass es sich bei der Dokumentkodierung um UTF-8 handelt.

        Es ist eine Einstellung des Servers. Willst du diese ändern, musst du es dort tun (evtl. in 'http://de.selfhtml.org/servercgi/server/htaccess.htm@title=.htaccess'):  AddDefaultCharset

        Mein Ansatz ist der, dass ich ordentlich codieren möchte

        Löblich. ;-)

        See ya up the road,
        Gunnar

        --
        „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)
  3. Hallo,

    Dein Fehler ist, dass du XHTML benutzt, aber keine XML-Deklaration angibst:
      <?xml version="1.0" encoding="iso-8859-1" ?>
    Schreibe das in die erste Zeile und dann sollte der Validator ruhig sein. Man kann diese Angabe zwar auch weglassen, aber dann wird das Standard-Encoding verwendet und das ist nuneinmal UTF-8. Deshalb meckert der Validator.

    Mein Tipp ist deine Dokumente auf UTF-8 umzustellen, dann kannst du die XML-Deklaration weglassen und der IE kann wegen ihr auch nicht in den Quirksmodus fallen.

    Wenn du deine Seite auf einem Server hast, dann sieht die ganze Sache nocheinmal anders aus, denn dann zählt die Kodierung, die der Server im Header angibt (Header ungleich <head>). Da solltest du dann also auch nocheinmal darauf achten, was dort angegeben ist als Kodierung.

    Gruss,
    OhneName

    1. Hallo,

      darf ich noch mal kurz nachhaken?

      Wie erstelle ich Dokumente in UTF-8? Einfach nur entsprechend abpspeichern und was istt dann mit den Umlauten? Welche Vorteile hat UTF?

      Gruss Mano

      1. Hallo,

        Wie erstelle ich Dokumente in UTF-8?

        Mit einem UTF-8-fähigen Editor. Z.B. Notepad2.

        Einfach nur entsprechend abpspeichern

        In Notepad2 File->Encoding->UTF-8 aktivieren und abspeichern.

        und was istt dann mit den Umlauten?

        Einfach hinschreiben wie du es gewöhnt bist.

        Welche Vorteile hat UTF?

        UTF-8 enthält alle wichtigen Sonderzeichen von allen wichtigen Sprachen. Damit musst du dir nie wieder Sorgen darum machen, ob deine Sonderzeichen denn jetzt im Browser auch richtig angezeigt werden.

        Gruss,
        OhneName

        1. Hello out there!

          UTF-8 enthält alle wichtigen Sonderzeichen von allen wichtigen Sprachen. Damit musst du dir nie wieder Sorgen darum machen, ob deine Sonderzeichen denn jetzt im Browser auch richtig angezeigt werden.

          Doch. Zur Anzeige eines Zeichens muss eine Schriftart auf dem Rechner des Nutzers vorhanden sein, die das Zeichen enthält.

          Auch dann stellt der IE einige Zeichen nicht dar, die der Firefox auf demselben Rechner problemlos darstellt.

          See ya up the road,
          Gunnar

          --
          „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)
      2. Hello out there!

        darf ich noch mal kurz nachhaken?

        Gern.

        Wie erstelle ich Dokumente in UTF-8? Einfach nur entsprechend abpspeichern

        Ja; vorzugsweise ohne BOM

        Erstellen ist aber noch nicht alles. Du musst die Ressourcen auch entsprechend ausliefern, d.h. deine Servereinstellungen anpassen.

        und was istt dann mit den Umlauten?

        Nichts besonderes; d.h. null Problemo.

        Welche Vorteile hat UTF?

        Dass sich damit sämtliche UCS/Unicode-Zeichen codieren lassen, nicht nur eine bescheidene Auswahl von 191 Zeichen wie bei ISO 8859-x.

        See ya up the road,
        Gunnar

        --
        „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)
        1. Hallo,

          Wie erstelle ich Dokumente in UTF-8? Einfach nur entsprechend abpspeichern

          Ja; vorzugsweise ohne BOM

          Ist BOM wirklich stom? *

          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?

          Mathias

          --
          * stom = ndl. dumm, mir fiel kein anderer Wortwitz ein ;)
          1. 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

            1. Hallo,

              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.

              Habs grade nochmal probiert. Das oben Gesagte gilt für aktuelle FireFox nur (noch?) für UTF-16 mit BOM. Aktuelle Opera scheint das gar nicht mehr zu jucken.

              viele Grüße

              Axel

    2. Hello out there!

      <?xml version="1.0" encoding="iso-8859-1" ?>
      Schreibe das in die erste Zeile und dann sollte der Validator ruhig sein.

      Nope, die Angabe im HTTP-Header hat auch Vorrang vor der in der XML-Deklaration.

      Man kann diese Angabe zwar auch weglassen, aber dann wird das Standard-Encoding verwendet und das ist nuneinmal UTF-8.

      Nope, verwendet wird die vom Server im HTTP-Header angegebene. Wenn keine solche vorhanden ist, _dann_ gilt UFT-8.

      Ähm – sagtest du ja:

      Wenn du deine Seite auf einem Server hast, dann sieht die ganze Sache nocheinmal anders aus, denn dann zählt die Kodierung, die der Server im Header angibt

      See ya up the road,
      Gunnar

      --
      „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)
      1. Hallo,

        Ich bin vom einfachsten Fall ausgegangen, dass er seine Seite noch nicht auf einem Server hat und nur lokal testet. Aus dieser Position heraus ist mir der Validatorfehler nämlich auch schon begegnet und ich konnte ihn auf diese Weise beseitigen.

        Gruss,
        OhneName