Thomas Schenkeli: UTF8: Mozilla sendet für "ü" "%C3%BC", IE sendet "ü"

Hallo,

ich stelle in einer UTF-8 Applikation per javascript für die Funktion createPopup() einen GET-Request zusammen. Der Firefox (Version 1.5.0.6) sendet ein "ü" auch UTF-8 encoded als "%C3%BC" weiter, der InternetExplorer scheint jedoch die UTF-8 Deklaration zu ignorieren und sendet einfach ein "ü".

Ist das ein bekannter Internet Explorer Bug? Oder ist für den InternetExplorer eine zusätzliche UTF-8 Deklaration notwendig?

Bisher hab ich folgendes getan um UTF-8 zu gatrantieren:

  1. XSL-Files beginnen mit <?xml version="1.0" encoding="UTF-8"?>
  2. XSL-Files enthalten: <xsl:output encoding="UTF-8" [....] />
  3. XSL-Files enthalten: <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> als Teil des HTML-Head-Tags

lg Thomas

  1. echo $begrüßung;

    ich stelle in einer UTF-8 Applikation per javascript für die Funktion createPopup() einen GET-Request zusammen. Der Firefox (Version 1.5.0.6) sendet ein "ü" auch UTF-8 encoded als "%C3%BC" weiter,

    Genauer gesagt ist das eine URL-Kodierung des UTF-8-kodierten ü.

    der InternetExplorer scheint jedoch die UTF-8 Deklaration zu ignorieren und sendet einfach ein "ü".

    Interessant wäre nun, in welcher Kodierung dieses ü vorliegt. Ist es UTF-8 kodiert, ist ja alles in Ordnung (solange die HTTP-RFC nichts dagegen hat). Wenn möglich schau dir bitte die Bytewerte des ü direkt nach dem Empfang auf dem Server an. Eine Umwandlung in eine Hex-Darstellung sollte die Funktion vornehmen können, die dir dabei helfen kann.

    Bisher hab ich folgendes getan um UTF-8 zu gatrantieren:

    1. XSL-Files beginnen mit <?xml version="1.0" encoding="UTF-8"?>
    2. XSL-Files enthalten: <xsl:output encoding="UTF-8" [....] />
    3. XSL-Files enthalten: <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> als Teil des HTML-Head-Tags

    Die charset-Angabe im Content-Type-Eintrag des HTTP-Headers hat Vorrang vor zumindest 3).

    echo "$verabschiedung $name";

    1. ich verwende nun die funktion encodeURIComponent um den entsprechenden Parameter vor dem verschicken zu codieren und es funktioniert Problemlos ...

      Auch wenn das nicht das Grundproblem direkt löst so hat es doch zumindest das gewünschte Ergebnis ;-)

      lg & danke Thomas

      1. Hi,

        Auch wenn das nicht das Grundproblem direkt löst

        doch - das löst es.
        Umlaute müssen URL-kodiert werden. Der Firefox ist nur so freundlich, Dein Versäumnis nachzuholen, während der IE in diesem Punkt ausnahmsweise mal nicht so fehlertoleranz ist (aber vielleicht akzeptieren Windows-Server ja auch ungültige Anforderungen?;-).

        freundliche Grüße
        Ingo

        1. Hallo Ingo,

          Auch wenn das nicht das Grundproblem direkt löst
          doch - das löst es.
          Umlaute müssen URL-kodiert werden. Der Firefox ist nur so freundlich, Dein Versäumnis nachzuholen, während der IE in diesem Punkt ausnahmsweise mal nicht so fehlertoleranz ist (aber vielleicht akzeptieren Windows-Server ja auch ungültige Anforderungen?;-).

          Das hat nichts mit Windows zu tun. ;-) Auch der Apache unter Linux akzeptiert ungültige Anforderungen:

          ----------------------- schnipp ------------------------------------
          christian@cobalt /var/www/localhost/htdocs $ touch würstchenbude
          christian@cobalt /var/www/localhost/htdocs $ telnet localhost 80
          Trying 127.0.0.1...
          Connected to localhost.
          Escape character is '^]'.
          GET /würstchenbude HTTP/1.1
          Host: localhost
          Connection: close

          HTTP/1.1 200 OK
          Date: Sat, 30 Sep 2006 12:19:51 GMT
          Server: Apache
          Last-Modified: Sat, 30 Sep 2006 12:19:35 GMT
          ETag: "374f80-0-c928a3c0"
          Accept-Ranges: bytes
          Content-Length: 0
          Connection: close
          Content-Type: text/plain; charset=ISO-8859-1

          Connection closed by foreign host.
          ----------------------- schnapp ------------------------------------

          Ich bin mir auch ziemlich sicher, dass eine ganze Menge an Webseiten nicht mehr funktionieren würde, wären die Webserver nicht so fehlertolerant. :-)

          Viele Grüße,
          Christian

          --
          "I have always wished for my computer to be as easy to use as my telephone; my wish has come true because I can no longer figure out how to use my telephone." - Bjarne Stroustrup