Problèmes avec le codage de caractères UTF-8 à partir de la valeur de chaîne de requête d'URL dans Internet Explorer 9
Je suis la recherche d'un étrange problème dans Internet Explorer, spécifiquement IE9, lorsque vous essayez d'afficher les caractères spéciaux (allemand caractères accentués) fournis dans la chaîne de requête URL. Cela fonctionne comme prévu dans Firefox et Chrome.
Par exemple, l'URL, je travaille avec ressemble à quelque chose comme ceci:
http://mysite.com/TestPage.aspx?Title=Hochauflösendes®
J'ai aussi essayé l'URL de la version encodée de l'URL:
http://mysite.com/TestPage.aspx?Title=Hochaufl%C3%B6sendes%C2%AE
Dans les deux cas, lorsque j'essaie d'afficher que "Titre" de la valeur de chaîne de requête sur ma page à l'aide Request.QueryString["Title"]
IE n'affiche pas correctement les caractères:
Hochaufl�sendes�
Si je code en dur directement le texte sur la page, elle s'affiche correctement sur tous les navigateurs. C'est seulement quand il tire dans la chaîne de requête où le problème se produit.
La page est enregistrée comme l'encodage UTF-8, et j'ai l' meta
balise dans ma page si nécessaire:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
J'ai aussi regardé la page d'en-tête et le contenu avec Fiddler, et tous le codage est correct.
Ce qui pourrait être à l'origine c'est à dire pas à afficher les caractères spéciaux correctement?
source d'informationauteur cjsharp1 | 2013-01-31
Vous devez vous connecter pour publier un commentaire.
Comme suggéré par Aristos, à l'aide de
HttpContext.Current.Request.RawUrl
travaillé pour ma situation.Pour récupérer la réelle valeur de chaîne de requête à partir de la RawUrl, une méthode simple de ce genre peut être utilisé:
Récupération de la valeur à l'aide de cette méthode a été testée en tant que travail dans IE8 et IE9. Le bug est corrigé dans IE10.