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:
Hochaufl�sendes�
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?
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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vorgeschlagen von Aristos, mit
HttpContext.Current.Request.RawUrl
arbeitete für meine situation.Abrufen, die die aktuelle query-string-Wert aus der RawUrl, eine einfache Methode, wie diese verwendet werden können:
Abrufen des Werts mit Hilfe dieser Methode wurde getestet in IE8 und IE9. Der Fehler ist behoben in IE10.
InformationsquelleAutor cjsharp1