Sto riscontrando un problema strano in Internet Explorer, in particolare IE9, quando si tenta di visualizzare caratteri speciali (caratteri accentati in tedesco) forniti all'interno della stringa di query URL . Funziona come previsto in Firefox e Chrome.Problemi con la codifica dei caratteri UTF-8 dal valore della stringa di query URL in Internet Explorer 9
Ad esempio, l'URL sto lavorando con un look simile a questa:
http://mysite.com/TestPage.aspx?Title=Hochauflösendes®
Ho anche provato la versione codificata URL del URL:
http://mysite.com/TestPage.aspx?Title=Hochaufl%C3%B6sendes%C2%AE
In entrambi i casi , quando sto cercando di visualizzare il valore stringa di query "Titolo" sulla mia pagina utilizzando Request.QueryString["Title"]
, IE non visualizza correttamente i caratteri:
Hochaufl�sendes�
Se codice il testo direttamente sulla pagina, viene visualizzato correttamente su tutti i browser. È solo quando viene estratto dalla stringa di query in cui si verifica il problema.
La pagina viene salvata come codifica UTF-8, e ho il tag meta
nella mia pagina, se necessario:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
Ho anche guardato intestazione della pagina e contenuti tramite Fiddler, e tutto il la codifica è corretta.
Quale potrebbe essere la causa per cui IE non visualizza correttamente i caratteri speciali?
Non ricordo perché, ma ho lo stesso problema e lo risolvo estraendo manualmente i parametri da 'HttpContext.Current.Request.RawUrl'. Da manuale, intendo che ho creato una funzione personalizzata che ottiene RawUrl ed estrae i parametri e non usa QueryString. – Aristos
@Aristos Questa è una buona idea che vale la pena provare. Ho trovato [questo post] (http://stackoverflow.com/questions/1638499/how-to-get-a-querystring-when-it-is-urlencoded-or-has-percent-characters-in-asp) , che esplora i diversi modi di ottenere il valore, ma suggerisce anche che questo potrebbe essere un bug in IE, anche se questo era del 2009. – cjsharp1
@Aristos Usando 'HttpContext.Current.Request.RawUrl' ha funzionato. Ho quindi recuperato il valore utilizzando il metodo trovato in [questo post] (http://dot-net-web-developer-bristol.blogspot.com/2010/08/getting-parameters-from-rawurl.html). – cjsharp1