Herr Rossi: Character encodings

Tag zusammen! =)

Nachdem ich seit einiger Zeit nur mehr xhtml 1.0 strict Dokumente schreibe, habe ich das Bedürfnis, auch zu verstehen, was ich mache. Leider gibt es einen Punkt, wo ich das NICHT tue. =(

Ich fange jedes Dokument folgendermaßen an :

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

Was die Doctype-Angabe betrifft, habe ich es ja - sagen wir mal *g* - HALBWEGS verstanden. Aber bei den "Character encodings" kapiere ich endgültig nichts mehr.

Auf http://www.w3.org/International/O-charset.html wird geschrieben, man soll

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

schreiben. Kann mir bitte wer verständlich folgende Fragen beantworten :

  1. Wenn mich jetzt ein Laie fragen würde, was der Unterschied zwischen doctype-Angabe und der Character encodings-Angabe ist. Wie erkläre ich das dann am besten mit einfachen Worten?

  2. Was ist der Unterschied zwischen der Angabe, die ich immer verwende und der auf der w3.org Seite?

  3. Was bedeuten diese utf-Angaben?

Ich hab das Forum schon oft durchforstet, gegoogelt und die w3.org-Seiten stuidert bis zum Gehtnichtmehr. Aber so richtig VERSDTANDEN hab ich das bis heute noch nicht.

Meine Dokumente sind zwar immer brav valide, aber ich würd trotzdem gern ganz genau wissen und verstehen, was ich mit der zweiten Angabe bewirke.

Danke im Voraus und liebe Grüße

Rossi

PS : Noch 2 Stunden und 7 Minuten bis zum Grand Prix - Start =)

  1. Eh klar, das WICHTIGSTE hab ich jetzt natürlich beim Kopieren wieder vergessen :

    Bei mir steht im head-Bereich natürlich ein

    "<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />"

    damit, es valide ist. Und was ich meinte, war der Unterschied zwischen DEM und dem

    "<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />"

    von der w3.org-Seite. Sorry *g*

    1. Hallo Herr Rossi,

      Bei mir steht im head-Bereich natürlich ein

      "<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />"

      damit, es valide ist. Und was ich meinte, war der Unterschied zwischen DEM und dem

      "<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />"

      von der w3.org-Seite. Sorry *g*

      Der Character-Set. UTF-8 ist ein Character Set und ISO-8859-1 auch. Du benutzt wahrscheinlich
      ISO-8859-1. Der Character Set sagt etwas über die im Dokument verwandten Zeichen und deren
      Kodierung aus. Näheres findest du aber auch in SELFHTML.

      Grüße,
       CK

      --
      Das Sein entsteht aus dem Nicht-Sein.
      1. Hi,

        "<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />"
        Der Character-Set. UTF-8 ist ein Character Set und ISO-8859-1 auch.

        Nein, kein Character Set. Sondern eine Kodierung.
        Ich versteh nicht, warum die Angabe den Namen charset bekommen hat - denn es ist eben NICHT der Zeichensatz.
        (beim XML-Prolog hat man den Fehler endlich korrigiert, dort heißt es korrekt "encoding").
        Sowohl bei HTML als auch bei XML ist der Zeichensatz immer ISO10646 (auch als Unicode bekannt), egal, welche Kodierung benutzt wird, siehe z.B. http://www.w3.org/TR/html401/intro/intro.html#h-2.3.1:
        One important step has been the adoption of the ISO/IEC:10646 standard (see [ISO10646]) as the document character set for HTML.

        UTF-8 oder auch UTF-16 sind nur bestimmte Kodierungen dieses Zeichensatzes, die beide erlauben, alle Zeichen ohne numerische Zeichenreferenzen (&#160;) oder Zeichen-Entitäten (€) zu benutzen.

        Die ISO-Kodierungen erlauben jeweils nur, einen kleinen Ausschnitt aus dem Zeichensatz ohne Zeichenreferenten/Zeichen-Entitäten zu benutzen, alle restlichen Zeichen müssen über diese Hilfsmittel angesprochen werden.
        Gleiches gilt auch für Windows-1252 und noch ein paar andere.

        Bei den ISO-Teilen kann man zur Not noch von einem Character Set sprechen (es legt ja eine gewisse Menge an Zeichen fest).
        Bei den UTF-Teilen ist das aber nicht der Fall - hier wird lediglich festgelegt, wie ein Zeichen kodiert wird, aber nicht, welche Zeichen es gibt - dies ist Aufgabe von Unicode.

        cu,
        Andreas

        --
        MudGuard? Siehe http://www.Mud-Guard.de/
  2. Hallo,

    Ich fange jedes Dokument folgendermaßen an :

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

    Was die Doctype-Angabe betrifft, habe ich es ja - sagen wir mal *g* - HALBWEGS verstanden.

    Also: ;-)

    DOCTYPE : ist ein Schlüsselwort und gibt der verarbeitenden Anwendung (z.B. einem XML parser) bekannt, dass für dieses Dokument eine DTD existiert und jetzt dafür die Angaben kommen, also startet die Documen Type Declaration.

    html : hier steht der Name der DTD, was der Name des obersten Elements im Dokument ist. Hier html.

    PUBLIC : Schlüsselwort, gibt der verarbeitenden Anwendung bekannt, dass die DTD eine öffentlich registrierte DTD ist (d.h. ein Parser der auch SGML-Katalogdateien lesen und verstehen kann, kann anhand der auf diesem Schlüsselwort folgende Angaben (zwischen dem ersten " und " der Public Identifier [PI]) die DTD identifizieren  und die Adresse der DTD-Datei aus dem Katalog entnehmen.

    Die Teile der PI

    -  :(das Minuszeichen) zeigt dass der Eigentümer der DTD nicht nach der ISO 9070 Standard registriert ist.

    // :Trenner

    W3C :Hier steht der Name der Eigentümer der DTD

    // : Trenner

    DTD :Erstes Wort ist ein Schlüsselwort über der Art des Textes, DTD bedeutet, dass es um 'markup declarations' geht, die eine DTD ergeben.

    XHTML 1.0 Strict  :alles was nach dem Schlüsselwort folgt ist die Beschreibung über die Art des Inhalts des Dokuments (hier Eben XHTML nach Version 1.0 in der 'strict' Variante.

    // Trenner

    EN  : die zwei buchstäbige Sprachkod nach ISO 639, bestimmt die Sprache der DTD

    Jetzt folgt eine URI bzw. die URL für die DTD:
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"

    ----------------------

    Kann mir bitte wer verständlich folgende Fragen beantworten :

    1. Wenn mich jetzt ein Laie fragen würde, was der Unterschied zwischen doctype-Angabe und der Character encodings-Angabe ist. Wie erkläre ich das dann am besten mit einfachen Worten?

    DOCTYPE: gibt an, dass es für dieses Dukument eine DTD gibt, die beschreibt welche Elemente, Attribute etc. und wie im Dokument vorkommnen können.

    Encoding: gibt an wie die Zeichen im Inhalt des Dokuments kodiert werden.

    1. Was ist der Unterschied zwischen der Angabe, die ich immer verwende und der auf der w3.org Seite?

    2. Was bedeuten diese utf-Angaben?

    Das wurde ja schon beantwortet.

    Grüße
    Thomas