在嘗試顯示URL查詢字符串中提供的特殊字符(德語重音字符)時,我在Internet Explorer中發現了一個奇怪的問題,特別是IE9 。 這在Firefox和Chrome中按預期工作。在Internet Explorer 9中使用URL查詢字符串值進行UTF-8字符編碼的問題
例如,我的工作的URL看起來是這樣的:
http://mysite.com/TestPage.aspx?Title=Hochauflösendes®
我也試着URL的URL編碼版本:
http://mysite.com/TestPage.aspx?Title=Hochaufl%C3%B6sendes%C2%AE
在這兩種情況下, ,當我試圖在我的頁面上使用Request.QueryString["Title"]
顯示「標題」查詢字符串值時,IE不會正確顯示字符:
Hochaufl�sendes�
如果我直接在頁面上對文本進行硬編碼,它會在所有瀏覽器上正確顯示。只有當它從發生問題的查詢字符串中提取時。
頁面保存爲UTF-8編碼,和我在我的頁面在必要時meta
標籤:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
我也看了一下通過提琴手頁面的標題和內容,所有的編碼是正確的。
什麼可能導致IE不能正確顯示特殊字符?
我不記得爲什麼,但我有同樣的問題,並通過手動從'HttpContext.Current.Request.RawUrl'提取參數來解決它。通過手動,我的意思是我已經制作了一個自定義函數來獲取RawUrl並提取參數,而不使用QueryString。 – Aristos
@Aristos這是一個值得嘗試的好主意。我確實發現[這篇文章](http://stackoverflow.com/questions/1638499/how-to-get-a-querystring-when-it-is-urlencoded-or-has-percent-characters-in-asp) ,它探討了獲取價值的不同方式,但也表明這可能是IE中的一個錯誤,儘管這是從2009年開始的。 – cjsharp1
@Aristos使用'HttpContext.Current.Request.RawUrl'工作。然後我使用[本文]中找到的方法檢索了該值(http://dot-net-web-developer-bristol.blogspot.com/2010/08/getting-parameters-from-rawurl.html)。 – cjsharp1