Andi: Browser misachtet <meta charset

Hallo,

meine Browser (FF, OP) missachten meine Zeichensatzangabe im header

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

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

Es wird immer auf UTF-8 umgestallt.
Bei PHP Seiten kann ich das mit set("default_charset") verhindern. Ich habe aber auch reine HTML Seiten.

Mein Rechner hat UTF-8 als Default eingestellt, die HTML Seiten öffne ich aber in ISO-8859-1 da ich noch einige ältere Dokumente in diesem Zeichensatz habe.

Wieso haben die <meta angaben keine wirkung?
Gibts ne Möglichkeit das in reinen HTML Seiten zu steuern?

Danke euch!

  1. Servus,

    wenn du in deinem Browser utf8 erzwingst, versucht er natürlich, Webseiten in utf8 darzustellen. Lasse den Zeichensatz automatisch auswählen.

    Gruss
    Patrick

    --
    sh:( fo:| ch:? rl:( br:> n4:( ie:% mo:) va:} de:> zu:) fl:| ss:| ls:[ js:|
    1. wenn du in deinem Browser utf8 erzwingst, versucht er natürlich, Webseiten in utf8 darzustellen. Lasse den Zeichensatz automatisch auswählen.

      Das ist mir klar. Es wird auch kein Zeichensatz erzwungen. Er steht immer auf automatische Auswahl. Ich habe das Problem auch in allen Browsern die ich hab. (Opera, Firefox, Konqueror)

  2. Hallo Andi.

    meine Browser (FF, OP) missachten meine Zeichensatzangabe im header

    <?xml version="1.0" encoding="iso-8859-1"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">

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

    Und was steht im (HTTP-)Header? Dies hier ist lediglich der head-Bereich eines XHTML-Dokumentes und dieser ist für die Entscheidung, in welcher Zeichenkodierung die Zeichen zu interpretieren sind, ohne Belang.

    Es wird immer auf UTF-8 umgestallt.
    Bei PHP Seiten kann ich das mit set("default_charset") verhindern. Ich habe aber auch reine HTML Seiten.

    Dann erzwinge die gewünschte Zeichenkodierung mit AddCharset/AddDefaultCharset.

    Mein Rechner hat UTF-8 als Default eingestellt, die HTML Seiten öffne ich aber in ISO-8859-1 da ich noch einige ältere Dokumente in diesem Zeichensatz habe.

    Wieso haben die <meta angaben keine wirkung?

    Weil diese nur in einem nicht-HTTP-Umfeld (z. B. im lokalen Dateisystem) relevant sind. Es heißt ja auch „http-equiv“, „HTTP-Äquivalent“, also Ersatz.

    Gibts ne Möglichkeit das in reinen HTML Seiten zu steuern?

    Wie beschrieben bedarf es einer kleinen Anpassung der Serverkonfiguration, was aber problemfrei in einer lokalen Konfigurationsdatei (.htaccess) erledigt werden kann.

    Einen schönen Donnerstag noch.

    Gruß, Mathias

    --
    ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
    debian/rules
    1. Hallo Mathias,

      Und was steht im (HTTP-)Header? Dies hier ist lediglich der head-Bereich eines XHTML-Dokumentes und dieser ist für die Entscheidung, in welcher Zeichenkodierung die Zeichen zu interpretieren sind, ohne Belang.

      Nicht ganz. Wenn der Server keinen Content-Type-Header mitsendet, sollte der Client versuchen, den Zeichensatz aus der XML-Deklaration bzw. der Meta-Angabe zu erfahren.

      Schöne Grüße,

      Johannes

      1. Hallo Johannes.

        Und was steht im (HTTP-)Header? Dies hier ist lediglich der head-Bereich eines XHTML-Dokumentes und dieser ist für die Entscheidung, in welcher Zeichenkodierung die Zeichen zu interpretieren sind, ohne Belang.

        Nicht ganz. Wenn der Server keinen Content-Type-Header mitsendet, sollte der Client versuchen, den Zeichensatz aus der XML-Deklaration bzw. der Meta-Angabe zu erfahren.

        Stimmt. Da mir dieser Fall aber bisher noch nicht untergekommen ist, kann ich nicht sagen, ob die Clients dies tatsächlich tun. Und irgendwann hatte ich auch einmal von einer Konfigurationsmöglichkeit für den Apachen gelesen, mit Hilfe derer er Dokumente nach meta-Elementen durchforstet und den Content-Type-Header entsprechend setzt. Ob es das tatsächlich (noch) gibt, kann ich jedoch nicht sagen.

        Einen schönen Donnerstag noch.

        Gruß, Mathias

        --
        ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
        debian/rules
        1. Hallo Mathias,

          Und irgendwann hatte ich auch einmal von einer Konfigurationsmöglichkeit für den Apachen gelesen, mit Hilfe derer er Dokumente nach meta-Elementen durchforstet und den Content-Type-Header entsprechend setzt. Ob es das tatsächlich (noch) gibt, kann ich jedoch nicht sagen.

          Es gibt mod_mime_magic, meinst du das?

          Schöne Grüße,

          Johannes

          1. Hallo Johannes.

            Und irgendwann hatte ich auch einmal von einer Konfigurationsmöglichkeit für den Apachen gelesen, mit Hilfe derer er Dokumente nach meta-Elementen durchforstet und den Content-Type-Header entsprechend setzt. Ob es das tatsächlich (noch) gibt, kann ich jedoch nicht sagen.

            Es gibt mod_mime_magic, meinst du das?

            Nein, das war es nicht.

            Einen schönen Donnerstag noch.

            Gruß, Mathias

            --
            ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
            debian/rules
        2. Hallo Mathias,

          [kein Content-Type Header]
          Stimmt. Da mir dieser Fall aber bisher noch nicht untergekommen ist, kann ich nicht sagen, ob die Clients dies tatsächlich tun.

          mir ist auch noch nicht aufgefallen, dass ein Server *keinen* Content-Type Header sendet. Wohl aber einen solchen ohne charset-Angabe:

          Content-Type: text/html

          Das sieht man öfter mal. Und dann ist es gut, wenn wenigstens noch eine META-Anweisung die richtige Zeichencodierung angibt.

          Und irgendwann hatte ich auch einmal von einer Konfigurationsmöglichkeit für den Apachen gelesen, mit Hilfe derer er Dokumente nach meta-Elementen durchforstet und den Content-Type-Header entsprechend setzt.

          Gelesen habe ich davon auch schon, kann mich aber nicht erinnern, wo das war. Und ob es Dichtung oder Wahrheit ist, kann ich auch nicht sagen.

          Ciao,
           Martin

          --
          Niemand ist überflüssig: Er kann immer noch als schlechtes Beispiel dienen.
          1. Hallo Martin,

            Content-Type: text/html
            Das sieht man öfter mal. Und dann ist es gut, wenn wenigstens noch eine META-Anweisung die richtige Zeichencodierung angibt.

            Wobei dann ja in der Theorie nach den Spezifikationen Latin 1 angenommen werden sollte.

            Tim

  3. Hello out there!

    <?xml version="1.0" encoding="iso-8859-1"?>

    Damit schickst du alte IEs in den Quirksmodus.

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

    Warum willst du dir unzählige Probleme (im Archiv auffindbar) mit XHMLT 1.1 aufhalsen? Hast du irgendeinen guten Grund für 1.1? Nein? Dann verwende XHTML 1.0 Strict.

    Mein Rechner hat UTF-8 als Default eingestellt,

    Nicht automatische Auswahl? Das wäre die sinnvolle Einstellung.

    ISO-8859-1 […] da ich noch einige ältere Dokumente in diesem Zeichensatz habe.

    Der Zeichen_satz_ von HTML-Dokumenten ist _immer_ Universal Character Set (UCS) / ISO/IEC 10646.

    ISO 8859-1 ist eine Zeichen_codierung_.

    See ya up the road,
    Gunnar

    --
    „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)
  4. Es wird immer auf UTF-8 umgestallt.

    Woran erkennst du das?

    Struppi.

    --
    Javascript ist toll (Perl auch!)