Probleme mit UTF-8 Zeichen Kodierung von URL-query-string-Wert in der Internet Explorer 9

Ich bin der Suche nach einer ungeraden Problem in Internet Explorer, die speziell IE9, wenn Sie versuchen, anzeigen von Sonderzeichen (deutschen Sonderzeichen) innerhalb der URL-query-string. Diese wie erwartet funktioniert in Firefox und Chrome.

Beispiel für einen URL, mit dem ich arbeite sieht ungefähr so aus:

http://mysite.com/TestPage.aspx?Title=Hochauflösendes®

Ich habe auch versucht die URL-kodierte version des URLs:

http://mysite.com/TestPage.aspx?Title=Hochaufl%C3%B6sendes%C2%AE

In jedem Fall, wenn ich versuche, um anzuzeigen, dass das 'Title' - query-string-Wert auf meiner Seite mit Request.QueryString["Title"], also die nicht-Anzeige die Zeichen richtig:

Hochauflsendes

Wenn ich hard-code, den text direkt auf der Seite, es zeigt korrekt auf allen Browsern. Es ist nur, wenn Sie es ziehen aus dem query-string in dem das Problem Auftritt.

Die Seite wird gespeichert als UTF-8-Codierung, und ich habe die meta tag in meine Seite als notwendig:

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

Hab ich auch geschaut auf der Seite header und den Inhalt über Fiddler, und alle die Codierung korrekt ist.

Was könnte die Ursache also nicht um die Anzeige der Sonderzeichen richtig?

Ich erinnere mich nicht, warum, aber ich habe das gleiche Problem und lösen es, indem Sie manuell extrahieren der Parameter aus der HttpContext.Current.Request.RawUrl. Durch die manuelle, ich meine, ich habe eine benutzerdefinierte Funktion, die bekommt die RawUrl und zum extrahieren der Parameter und nicht mit dem QueryString.
Das ist eine gute Idee, einen Versuch Wert. Ich habe dieser Beitrag, welches sich mit den verschiedenen Möglichkeiten, den Wert, aber auch nahe, dies könnte ein bug im IE, obwohl dies wurde von 2009.
Mit HttpContext.Current.Request.RawUrl gearbeitet. Ich habe dann abgerufen werden, den Wert mit der Methode in diesem post.
Dann schlage ich vor, Sie zu machen, eine Antwort und beschreiben Sie, wie Sie es lösen können.

InformationsquelleAutor cjsharp1 | 2013-01-31

Schreibe einen Kommentar