IE Bug: Accept-charset UTF-8 in Formularen, welche in ISO Seiten eingebettet sind
Der Internet Explorer verhält sich mal wieder ausnahmslos inkonsistent. Gibt man einem form-Element das Attribut accept-charset=”UTF-8″ und ist dieses Formular in einer ISO-kodierten (oder auch andere) Seite eingebettet, so verschickt der IE (alle Versionen) die Inhalte nur in UTF-8 wenn folgende Bedingung erfüllt ist:
Die Lösung für das UTF-8 charset Problem
Die Eingabe muss ein UTF-8 Zeichen enthalten, welches NICHT in der umgebenden Kodierung (bspw. ISO) abgebildet werden kann. Andernfalls behält der IE die umgebende Kodierung und ignoriert damit das accept-charset.
Abhilfe schafft das Einfügen eines hidden-Fields, welches ein UTF-8 Zeichen enthält. Beispielsweise:
<input type="hidden" name="dummyChar" value="♥" />
Ausführliche Informationen finden sich unter: http://michi.knallgrau.at/blog/stories/3643754/
Meinen besten Dank an Michi von Knallgrau, you made my day!
Da kram ich mir doch meine IE Voodoo Doll wieder raus !!





Super, danke für den Tipp. Benutze den IE zwar eh nur noch als 2. Browser aber ganz verzichten kann man ja auch nicht drauf. Ansonsten löst der IE bei mir regelmäßig Reizgefühle aus. Leider macht mich aber auch der Firefox nicht mehr so glücklich wie früher.
Danke für die Infos.. hat mir ein paar graue Haare erspart. Ich kriege grad irgendwie wieder Hass auf den IE… ;-)
Die Daten musst du wohl programmatisch selbst umcodieren, da accept-charset im IE nur den Wert UTF-8 kennt (vgl. http://msdn.microsoft.com/en-us/library/ms533061(VS.85).aspx)
Na spitze! Es wäre ja auch zu schön, wenn ein kleines Unternehmen wie Microsoft es nach nur 14 Jahren schaffen würde, standardkonforme Produkte zu entwickeln ;)
Gibts auch einen Workaround für den umgekehrten Fall? Der IE (inkl. IE 8) ignoriert nämlich auch accept-charset=”ISO-8859-1″ für Formulare in UTF-8 Seiten. Das ist ärgerlich, da in meinem Fall die Formulardaten nach extern weitergegeben werden sollen. Dort kann nur mit ISO-8859-1 weitergearbeitet werden. Firefox macht selbstredend keine Zicken.