Sven Jacobs: IE ignoriert UTF-8

Hallo zusammen!

Ich bin hier bald am verzweifeln! Ich versuche, dem IE UTF-8 beizubringen, so dass ich auf Serverseite in einem Perl-Skript die Formulardaten in UTF-8 vorliegen habe.

Dem Apache wird über die Einstellung:

AddDefaultCharset UTF-8

mitgeteilt, dass er UTF-8 im HTTP-Header publizieren soll. Zusätzlich setze ich UTF-8 in der XML-Deklaration des XHTML-Dokumentes:

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

in den Meta-Tags:

<meta http-equiv="content-type" content="text/html; charset=UTF-8" />

und sogar noch einmal in <form> Element:

accept-charset="UTF-8"

Das ist dem IE (Version 6.0.2800.1106) aber alles schnurz, er liefert mir immer ISO-8859-1. Unter Ansicht/Codierung ist die Automatische Auswahl aktiviert. Selbst wenn ich UTF-8 fest einstelle, springt er bei jedem Reload wieder auf ISO zurück.

Ist das ein Bug? Im Mozilla funktioniert das wie erwartet einwandfrei.

  1. hi,

    Das ist dem IE (Version 6.0.2800.1106) aber alles schnurz, er liefert mir immer ISO-8859-1.

    konnte ich bei meinen tests diesbezüglich mit dem IE nicht feststellen - allerdings habe ich ihn auch nicht durch voranstellen eines XML-prologs in den quirks mode geschickt.

    gibt es das problem mal online zu begutachten?

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Das ist dem IE (Version 6.0.2800.1106) aber alles schnurz, er liefert mir immer ISO-8859-1.

      konnte ich bei meinen tests diesbezüglich mit dem IE nicht feststellen - allerdings habe ich ihn auch nicht durch voranstellen eines XML-prologs in den quirks mode geschickt.

      Zum Glück arbeitet der IE nicht im Quirks-Mode. Ich habe den XML-Prolog hinter die DTD gestellt.

      gibt es das problem mal online zu begutachten?

      Ne leider nicht.

      Wie ich soeben festgestellt habe, springt der IE bei einfachen HTML-Seiten in der Tat auf UTF-8, jedoch nicht bei Perl-Skripten.

      1. Hi,

        Wie ich soeben festgestellt habe, springt der IE bei einfachen HTML-Seiten in der Tat auf UTF-8, jedoch nicht bei Perl-Skripten.

        und mit "content-type" bzw. "charset" alles OK?   ;-)

        Gruss,
        Ludger

        1. und mit "content-type" bzw. "charset" alles OK?   ;-)

          Ja, die werden in der Ausgabe des Perl-Skripts, welches XHTML ist, immer gesetzt!

          Das Problem war, dass der Apache ein DefaultCharset nur für text/plain und text/html ausliefert. Das Perl-Skript erzeugt zwar text/html, jedoch muss ich den HTTP-Header in dem Perl-Skript selber erzeugen und dort das Charset festlegen.

          Das Problem lag also eher auf Seite des Webservers als bei IE, obwohl der IE natürlich die Angabe im HTML hätte interpretieren können, anstatt blind auf ISO-8859-1 zu stellen, wenn er im HTTP-Header nichts findet.

          Hat sich also erledigt, vielen Dank!

          1. hi,

            Das Problem lag also eher auf Seite des Webservers als bei IE,

            vermutlich nicht "eher", sondern "ganz eindeutig".

            obwohl der IE natürlich die Angabe im HTML hätte interpretieren können, anstatt blind auf ISO-8859-1 zu stellen, wenn er im HTTP-Header nichts findet.

            im HTTP-header dürfte vermutlich als default für perl-scripte weiterhin iso-8859-1 geliefert worden sein, da dein AddDefaultCharset wie Sven dir schon schrieb, nicht "gegriffen" hat - und das ist bekanntlich "stärker" als eine angabe per meta-tag.

            gruß,
            wahsaga

            --
            /voodoo.css:
            #GeorgeWBush { position:absolute; bottom:-6ft; }
      2. hi,

        Zum Glück arbeitet der IE nicht im Quirks-Mode. Ich habe den XML-Prolog hinter die DTD gestellt.

        sollte mich doch stark wundern, wenn das erlaubt wäre.

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. Zum Glück arbeitet der IE nicht im Quirks-Mode. Ich habe den XML-Prolog hinter die DTD gestellt.

          sollte mich doch stark wundern, wenn das erlaubt wäre.

          Es ist zwar nicht schön aber der einzige Weg, ein XHTML-Dokument mit Standard Mode im IE zu vereinen. Der XML-Prolog kann nach der DTD stehen, so steht es zumindest in SelfHTML ;-)

          1. Hallo,

            Es ist zwar nicht schön aber der einzige Weg, ein XHTML-Dokument mit Standard Mode im IE zu vereinen.

            Nein, der empfohlene Weg waere das hier erlaubte Weglassen der XML-Deklaration.

            Der XML-Prolog kann nach der DTD stehen, so steht es zumindest in SelfHTML ;-)

            Der XML-Prolog kann schon allein deshalb nicht nach der Dokumenttypdeklaration stehen, weil letztere ein Teil des Prologs ist. Wenn die XML-Deklaration angegeben wird, dann gehoert diese in die erste Zeile.

            MfG, Thomas

          2. Hallo Sven,

            Der XML-Prolog kann nach der DTD stehen, so steht es zumindest in SelfHTML ;-)

            Tatsächlich? Ich habe die Stelle nicht finden können.

            Grüße
            Roland

            1. Der XML-Prolog kann nach der DTD stehen, so steht es zumindest in SelfHTML ;-)

              Tatsächlich? Ich habe die Stelle nicht finden können.

              Ich jetzt auch nicht mehr. Ich habe es jedenfalls mal irgendwo gelesen und TYPO3 bietet z.B. eine Option an, um DTD und XML-Prolog zu vertauschen.

        2. wahsaga,

          Ich habe den XML-Prolog hinter die DTD gestellt.
          sollte mich doch stark wundern, wenn das erlaubt wäre.

          Dann hieße er ja wohl XML-Epilog.
          Gunnar

          --
          “I got my finger on the trigger / But I don’t know who to trust” (Bruce Springsteen, Devils and Dust)
  2. Moin!

    Dem Apache wird über die Einstellung:

    AddDefaultCharset UTF-8

    mitgeteilt, dass er UTF-8 im HTTP-Header publizieren soll.

    Nein. Ihm wird mitgeteilt, dass er bei Ressourcen, für die nichts anderes festgelegt ist, UTF-8 als Charset publizieren soll.

    Für Perl-Skripte wird aber vermutlich was anderes festgelegt sein, denn sonst könntest du sie nicht ausführen, sondern würdest sie im Quelltext an den Browser liefern.

    • Sven Rautenberg