Hexa: HTML 4.0: encoding-Angabe nötig/möglich?

Hallo liebes Forum :D

Ich habe eine html 4.0-Seite (<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">) validieren wollen.

Beim W3C wird die Seite nicht validiert, weil weder Version noch Encoding gefunden wird, beim WDG heisst es 'character encoding unknown, assuming ISO-8859-1' und html 4.0 Transitional wird erkannt.

Ich finde aber keine Anleitung, um in html 4.0 ein Encoding anzugeben, im Gegenteil:
Unter http://selfhtml.teamone.de/html/xhtml/unterschiede.htm#xml_deklaration steht "... Eine solche Deklaration gibt es in
HTML 4.0 nicht, ist also XHTML-spezifisch."

Warum erkennt der W3C-Validator die html-Version nicht? Kann ich Encoding angeben? Oder hab ich da was falsch verstanden?

Vielen Dank vorab!
Hexa

  1. Hallo Hexa,

    Warum erkennt der W3C-Validator die html-Version nicht? Kann ich Encoding angeben? Oder hab ich da was falsch verstanden?

    Mit Encoding ist der Zeichensatz (Charset) gemeint.
    (Jaja, es gibt viele Ausdruecke...)

    Den kannst Du bei HTML 4 entweder per META-Tag angeben:
    http://selfhtml.teamone.de/html/kopfdaten/meta.htm#zeichensatz
    (notwendig, wenn Du lokale Dateien zum Validator hochlaedst)

    und/oder Du bringst Deinem Webserver bei, dass er die

    Dateien mit dem entsprechenden Charset ausliefert.
    Fuer Apache siehe:
    http://httpd.apache.org/docs/mod/core.html#adddefaultcharset

    Achtung: Beide Male das gleiche Charset angeben!

    HTH, mfg
    Thomas

  2. Hallo Hexa,

    Ich habe eine html 4.0-Seite (<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">) validieren wollen.

    Beim W3C wird die Seite nicht validiert, weil weder Version noch Encoding gefunden wird, beim WDG heisst es 'character encoding unknown, assuming ISO-8859-1' und html 4.0 Transitional wird erkannt.

    Es fehlt die Angabe der Kodierung. Diese kannst du in beispielsweise über ein meta-Element angeben, http://selfhtml.teamone.de/html/kopfdaten/meta.htm#zeichensatz, oder einmal für alle HTML-Dokumente in einer .htaccess-Datei im obersten Verzeichnis deiner Webseite (sofern der Server es unterstützt). Der relevante Befehl in .htaccess wäre dann beispielsweise »AddCharset ISO-8859-1 .html«, sofern deine Dokumente die Dateiendung .html tragen und die Kodierung ISO-8859-1 benutzen.

    Ich finde aber keine Anleitung, um in html 4.0 ein Encoding anzugeben, im Gegenteil:
    Unter http://selfhtml.teamone.de/html/xhtml/unterschiede.htm#xml_deklaration steht "... Eine solche Deklaration gibt es in
    HTML 4.0 nicht, ist also XHTML-spezifisch."

    Da hast du dich anscheinend verirrt. Auf dieser Seite und speziell in diesem Absatz geht es nämlich um XHTML und die Unterschiede zwischen XHTML und HTML. Ein spezieller Unterschied ist die XML-Deklaration, in welcher in XML-Dokumenten die Kodierung angegeben werden sollte (sofern sie von der Fallback-/Standardkodierung abweicht und nicht über ein darüberliegendes Protokoll wie HTTP geliefert wurde).
    Mit der Angabe der Kodierung in HTML-Dokumenten hat das aber nichts zu tun, die Aussagen dort sind also für deine Frage nicht relevant.

    Warum erkennt der W3C-Validator die html-Version nicht?

    Die HTML-Version erkennt er doch, nämlich HTML 4.0 Transitional. Deine Dokumenttyp-Angabe, die du gepostet hast, ist gültig, wenngleich du vielleicht auf HTML 4.01 umsteigen solltest. Siehe http://selfhtml.teamone.de/html/allgemein/grundgeruest.htm#dokumenttyp.

    Kann ich Encoding angeben?

    Wenn Dokumenttyp und Kodierung richtig angegeben sind, sollte der Validator zumindest das Dokument prüfen können. Beides kannst du prinzipiell aber auch bei der Prüfung testweise umgehen: http://validator.w3.org/detailed.html.

    Mathias

    1. Hi,

      Es fehlt die Angabe der Kodierung. Diese kannst du in beispielsweise über ein meta-Element angeben, [link:http://selfhtml.teamone.de/html/kopfdaten/meta.htm#zeichensatz

      Aha, da heisst das content-type, dann nuetzt mir das Suchwort encoding natuerlich nichts...

      Danke!
      Hexa