Björn Weichel: charset/ Zeichenkodierung

Hallo,

welche Kodierung und Doctype muss ich denn einstellen, damit ich meine normale HTML Seite in jedem Browser darstellen kann? Ich habe utf8 verwendet, da werden die Umlaute nicht angezeigt.

  1. Hello out there!

    welche Kodierung und Doctype muss ich denn einstellen, damit ich meine normale HTML Seite in jedem Browser darstellen kann?

    DOCTYPE: denjenigen der Sprache/Variante, deren Regeln du beim Schreiben befolgt hast. (HTML 4.01 oder XHTML 1.0; Strict oder Transitional, Frameset hoffentlich nicht!)

    Codierung: diejenige, mit der du das Dokument gespeichert hast.

    Beachte, dass du die Angabe evtl. in der Serverkonfiguration ändern musst, weil dessen Angabe im HTTP-Header Vorrang vor der Angabe im 'meta'-Element hat.

    Alternative: Dokument in der Codierung speichern, die der Server ausgibt.

    See ya up the road,
    Gunnar

    --
    „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)
    1. Ähm, wow... wie bekomme ich denn raus, welche Codierung der Server will? Ich habe momentan das Problem das ein Kunde die Seite ohne Umlaute sieht, ich jedoch mit... wir beide verwenden den Firefox 2.0

      1. Hello out there!

        Ähm, wow... wie bekomme ich denn raus, welche Codierung der Server will?

        Du meinst, welche er angibt.

        Rechte Maustaste > Seiteninformationen anzeigen > Allgemein > Kodierung  (nicht das, was unter "Meta:" steht)

        Ich habe momentan das Problem das ein Kunde die Seite ohne Umlaute sieht, ich jedoch mit...

        Rufst du die Seite denn auch über HTTP (übers Web) auf? Wenn nicht, gibt's für _dich_ ja keinen HTTP-Header, dann gilt für _dich_ die Angabe im 'meta'-Element (HTTP-EQUIV).

        Lass doch mal sehen!

        See ya up the road,
        Gunnar

        --
        „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)
        1. ja über http (übers web), das heißt also das ich immer der einstellung im browser ausgesetzt bin, es sei denn ich gebe die zeichencodierung im meta tag an?

          ist da meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" das richtige für eu?

          1. Hello out there!

            das heißt also das ich immer der einstellung im browser ausgesetzt bin

            Nein; nicht der Server tut, was der Browser will, sondern andersrum.

            es sei denn ich gebe die zeichencodierung im meta tag an?

            Ja, das kann nicht schaden. Was gibt denn dein Server nun aus? Vielleicht gibt er ja auch gar keine Codierung im HTTP-Header an, dann ist die Angabe im 'meta'-Element erforderlich.

            (BTW, siehe Elemente, Tags und Attribute [Meiert])

            ist da meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" das richtige für eu?

            Die Angabe hat rein gar nichts mit dem Zielpublikum zu tun; sondern allein mit der Codierung, mit der dein Editor das Dokument gespeichert hat. Siehe Das Problem mit Zeichenkodierungen [Jendryschik]

            See ya up the road,
            Gunnar

            --
            „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)
        2. echo $begrüßung;

          wie bekomme ich denn raus, welche Codierung der Server will?
          Du meinst, welche er angibt.
          Rechte Maustaste > Seiteninformationen anzeigen > Allgemein > Kodierung  (nicht das, was unter "Meta:" steht)

          Das ist nicht das, was der Server angibt, sondern das wovon der Firefox nach Auswertung aller Angaben letzten Endes ausgeht. Beispiel: Q (weil ich es grad offen habe). Hier gibt der Server nichts an, im Meta steht ISO-8859-1, und die von dir angegebene Stelle zeigt ebenfalls ISO-8859-1 an.

          Das was der Server angibt sieht man nur in den HTTP-Headern. Die zeigt der FF nur an, wenn beispielsweise die livehttpheaders-Extension installiert ist. Ebenfalls Rechte Maustaste > Seiteninformationen anzeigen, dann aber weiter in der Lasche Header und da im unteren Teil in der Content-Type-Zeile der zweite Teil charset=... (im Q-Beispiel nicht zu sehen, da nicht vorhanden, aber beispielsweise hier im Forum.)

          echo "$verabschiedung $name";

          1. Hallo dedlfix!

            Das ist nicht das, was der Server angibt, sondern das wovon der Firefox nach Auswertung aller Angaben letzten Endes ausgeht. Beispiel: Q (weil ich es grad offen habe). Hier gibt der Server nichts an, im Meta steht ISO-8859-1, und die von dir angegebene Stelle zeigt ebenfalls ISO-8859-1 an.

            Danke für diese Erläuterung! Ich hatte mich nämlich gewundert, nachdem Gunnar schon mal den Tipp gegeben hatte, unter »Seiteninformationen« nachzuschauen, warum bei einer Seite, die UTF-8 im Meta hatte, UTF-8 unter Kodierung stand, und bei einer andern mit ISO-8859-1 eben ISO-8859-1 stand. Wenn es vom Server käme, müsste bei beiden Seiten die selbe Kodierung stehen, oder?

            Viele Grüße aus Frankfurt/Main,
            Patrick

            --

            _ - jenseits vom delirium - _
            [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
            Nichts ist unmöglich? Doch!
            Heute schon gegökt?
            1. echo $begrüßung;

              Das ist nicht das, was der Server angibt, sondern das wovon der Firefox nach Auswertung aller Angaben letzten Endes ausgeht. Beispiel: Q (weil ich es grad offen habe). Hier gibt der Server nichts an, im Meta steht ISO-8859-1, und die von dir angegebene Stelle zeigt ebenfalls ISO-8859-1 an.

              Danke für diese Erläuterung! Ich hatte mich nämlich gewundert, nachdem Gunnar schon mal den Tipp gegeben hatte, unter »Seiteninformationen« nachzuschauen, warum bei einer Seite, die UTF-8 im Meta hatte, UTF-8 unter Kodierung stand, und bei einer andern mit ISO-8859-1 eben ISO-8859-1 stand. Wenn es vom Server käme, müsste bei beiden Seiten die selbe Kodierung stehen, oder?

              Ich verstehe deine Frage nicht so recht. Da diese Stelle nicht die charset-Angabe aus dem Content-Type-Header anzeigt, ist es auch müßig zu diskutieren, was dort stünde, wenn der Server dieses oder jenes dort angäbe.

              Noch ein kleiner Test: Man schaue sich die Angabe (Rechtsklick->Seiteninformation->Allgemein->Kodierung) an und stelle nun zu Fuß die zur Dekodierung des Dokuments verwendete Kodierung im Menüpunkt Ansicht->Zeichenkodierung auf einen anderen Wert. Die Angabe hat sich nun auf den soeben eingestellten Wert geändert.

              echo "$verabschiedung $name";

              1. Hallo dedlfix!

                Wenn es vom Server käme, müsste bei beiden Seiten die selbe Kodierung stehen, oder?
                Ich verstehe deine Frage nicht so recht. Da diese Stelle nicht die charset-Angabe aus dem Content-Type-Header anzeigt, ist es auch müßig zu diskutieren, was dort stünde, wenn der Server dieses oder jenes dort angäbe.

                OK, ich habe mich - und Dich auch - aber verstanden  :)

                Ich meinte es so: Wenn Firefox an dieser einen Stelle die charset-Angabe anzeigen würde, die der Server schickt, müsste an dieser einen Stelle immer die gleiche Angabe stehen, egal, was ich in meinen Dateien im entsprechenden Meta-Tag notiert habe. Und eben das ist nicht der Fall, wie mein Test mit zwei Dateien mit je verschiedenen Charset-Angaben im Meta-Tag zeigte.

                Und das deckt sich mit dem, was Du im ersten Absatz Deiner Antwort an Gunnar sagst.

                Viele Grüße aus Frankfurt/Main,
                Patrick

                --

                _ - jenseits vom delirium - _
                [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
                Nichts ist unmöglich? Doch!
                Heute schon gegökt?