Gerald: Valides XHTML mit Umlauten

Hallo!

Ich habe eine Frage zu validem XHTML und Umlauten in Verbindung mit utf-8.

Ich verwende das CMS Typo3 und habe Charset auf utf-8 gestellt.
Wenn ich nun über den "Rich Text Editor" deutschen Text einstelle, der ja bekanntlich Umlaute wie ä,ö,ü beinhaltet, wird Dieser (im Frontend) nicht in ä, ö, ü umgewandelt. Als ich 8859-1 verwendete, geschah die Umwandlung in ü etc. jedoch.

Ist es valides XHTML, wenn ich ä's ö's und ü's im Quellcode stehen habe?!

  1. Hello out there!

    Ist es valides XHTML, wenn ich ä's ö's und ü's im Quellcode stehen habe?!

    Ja.

    See ya up the road,
    Gunnar

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

      Das war mir als "Mr. Monk des Quellcodes" äußerst wichtig zu wissen! :-)

      Eine Frage bezüglich des Headers habe ich noch:
      TYPO3 spuckt mir folgenden Header aus:

      ------------------------------------------
      <?xml version="1.0" encoding="utf-8"?>
      <!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" xml:lang="de" lang="de">
      <head>
       <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
      ------------------------------------------

      Kann oder sollte ich bei der englischsprachigen Version bei xml:lang="de" und lang="de" ein "en" setzen, oder ist das irrelevant?

      Beste Grüße
      Gerald

      1. Hello out there!

        <?xml version="1.0" encoding="utf-8"?>

        Das solltest du rausnehmen, da du IEs sonst in den Quirks-Modus schickst.

        Kann oder sollte ich bei der englischsprachigen Version bei xml:lang="de" und lang="de" ein "en" setzen,

        Zweifaches "Ja".

        oder ist das irrelevant?

        Für Agenten, die die Sprachangabe auswerten, nicht.

        See ya up the road,
        Gunnar

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

          Muss mal schauen, ob es mir TYPO3 erlaubt, die erste Zeile wegzulassen (<?xml ... ?>) ...

          Grüße von jemandem, der auch sehr gern ne Klampfe in den Händen hält! ;-)

          1. Hello out there!

            Muss mal schauen, ob es mir TYPO3 erlaubt, die erste Zeile wegzulassen (<?xml ... ?>) ...

            Ein Texteditor erlaubt das. ;-)

            Nochmal zurück zu

            ... »» Ist es valides XHTML, wenn ich ä's ö's und ü's im Quellcode stehen habe?!

            Du kannst nicht nur 'ä' etc. im Quellcode stehen haben, du solltest es auch:

            “It is almost always preferable to use an encoding that allows you to represent the characters in their normal form, rather than using character entities or NCRs.” [QA-ESCAPES]

            Grüße von jemandem, der auch sehr gern ne Klampfe in den Händen hält! ;-)

            "Auch"? Wie kommste darauf, ich hielte ne Klampfe in den Händen? Ich trag sie doch auf'm Rücken ... ;-)

            See ya up the road,
            Gunnar

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

    Ist es valides XHTML, wenn ich ä's ö's und ü's im Quellcode stehen habe?!

    Ja, das ist völlig OK. Du mußt nur aufpassen, daß Du einen Zeichensatz verwendest, der tatsächlich alle Zeichen enthält, die Du verwenden möchtest - da ist Unicode aber eine sehr gute Wahl, und UTF-8 ist für deutsche Texte auch die beste Codierung.
    Wichtig ist auch, daß die Angaben dazu überall übereinstimmen, d.h. der tatsächliche Zeichensatz, der im HTTP-Header angegebene sowie der im Meta-Tag angegebene müssen übereinstimmen, sonst gibt's Probleme.

    Nur diejenigen Zeichen, die in HTML spezielle Bedeutungen haben, müssen unabhängig vom Zeichensatz als Entities codiert werden, wenn sie im Text vorkommen (z.B. < und &).

    Viele Grüße vom Længlich

    1. Hello out there!

      Du mußt nur aufpassen, daß Du einen Zeichensatz verwendest, der tatsächlich alle Zeichen enthält, die Du verwenden möchtest - da ist Unicode aber eine sehr gute Wahl, [...]

      Nö, da musst du nicht aufpassen, da HTML-Dokumente _immer_ UCS/Unicode als Zeichensatz verwenden. [HTML401 §5.1]

      [...] und UTF-8 ist für deutsche Texte auch die beste Codierung.
      Wichtig ist auch, daß die Angaben dazu überall übereinstimmen, d.h. der tatsächliche Zeichensatz, der im HTTP-Header angegebene sowie der im Meta-Tag angegebene müssen übereinstimmen, sonst gibt's Probleme.

      Nicht "Zeichensatz", sondern "Zeichencodierung". (Im Satz davor wusstest du's noch.)

      Nur diejenigen Zeichen, die in HTML spezielle Bedeutungen haben, müssen unabhängig vom Zeichensatz als Entities codiert werden,

      ... oder als numerische Zeichenreferenzen notiert werden.

      See ya up the road,
      Gunnar

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

        Nö, da musst du nicht aufpassen, da HTML-Dokumente _immer_ UCS/Unicode als Zeichensatz verwenden. [HTML401 §5.1]

        Stimmt, hatte ich vergessen.

        Nicht "Zeichensatz", sondern "Zeichencodierung". (Im Satz davor wusstest du's noch.)

        Ja, meinte ich auch. Läßt Du's als "Tippfehler" durchgehen? ;-)

        Nur diejenigen Zeichen, die in HTML spezielle Bedeutungen haben, müssen unabhängig vom Zeichensatz als Entities codiert werden,

        ... oder als numerische Zeichenreferenzen notiert werden.

        Zeichenreferenzen sind doch immer Entities, oder? In SELFHTML ist die Rede von benannten Zeichen (named entities) und von numerischer Notation (würde ich mit numeric entities übersetzen). Zeichenreferenzen / Entities ohne Adjektiv habe ich als Oberbegriff betrachtet.

        Danke für die Korrekturen! Einmal Vorschau lesen ist wohl doch zu wenig... ;-)

        Viele Grüße vom Længlich

        1. Hello out there!

          Ja, meinte ich auch. Läßt Du's als "Tippfehler" durchgehen? ;-)

          :-)

          Zeichenreferenzen sind doch immer Entities, oder?

          Nein. Bist du dem Link zu [HTML401 §5.1] nicht gefolgt? Hättest von dort einfach nur etwas runterscrollen müssen bis 5.3 Zeichenreferenzen [HTML401 §5.3].

          'auml' ist eine benannte Entität, '&auml;' eine Zeichen-Entity-Referenz für 'ä'.

          '&#xE4;' ist die numerische Zeichenreferenz (NCR) für 'ä'.

          ('&#228;' auch; die ist aber blöd, weil in anderen Kontexten (Unicode-Charts, %-Encoding, ...) die hexadezimale Angabe gebraucht wird und das ewige Umrechnen nervig ist.)

          See ya up the road,
          Gunnar

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

    Das war mir als "Mr. Monk des Quellcodes" äußerst wichtig zu wissen! :-)

    Eine Frage bezüglich des Headers habe ich noch:
    TYPO3 spuckt mir folgenden Header aus:

    ------------------------------------------
    <?xml version="1.0" encoding="utf-8"?>
    <!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" xml:lang="de" lang="de">
    <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    ------------------------------------------

    Kann oder sollte ich bei der englischsprachigen Version bei xml:lang="de" und lang="de" ein "en" setzen, oder ist das irrelevant?

    Beste Grüße
    Gerald

    1. Hi!

      Kann oder sollte ich bei der englischsprachigen Version bei xml:lang="de" und lang="de" ein "en" setzen, oder ist das irrelevant?

      Ja, das würde ich tun.

      Und dann könntest du auch die Sprache auch noch über Meta-Tags angeben:

      <meta name="DC.language" content="de" scheme="DCTERMS.RFC3066" />
      (erwartet Sprachangaben nach RFC 3066)

      <meta http-equiv="content-language" content="de" />
      (erwartet Sprachangaben nach RFC 1766)

      (Die http-equiv-Metatags sollen vom Browser so interpretiert werden, als wäre diese Angabe per HTTP-Header geschickt worden.)

      Schöner Gruß,
      rob

      1. Hello out there!

        (erwartet Sprachangaben nach RFC 3066)
        (erwartet Sprachangaben nach RFC 1766)

        Beide sind obsolet. Akruell ist RFC 4646 [RFC4646].

        “Note that the HTML specification still recommends the use of RFC 1766 for identifying language but you should use RFC 4646 despite what the HTML specification currently says.” [LANGUAGE-TAGS]

        Und [DCMI-TERMS] wartet noch aufs nächste Update.

        See ya up the road,
        Gunnar

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