2010-03-11 47 views
0

我有一個腳本跟蹤訪問&查閱者到一個網站。奇怪的編碼問題 - 希伯來文

我發送document.referrer(我在javascript中使用escape())到服務器 並在使用HttpUtility.HtmlDecode(C#)解碼之後將字符串存儲在數據庫中。

對於大多數情況下,我可以解析引用字符串並顯示希伯來字符, 但有幾種情況我不能。

我發現這兩個字符串是不同的(一個顯示右側,一個沒有)

顯示正確的包含這些類型的角色之一: http://www.google.co.il/search?hl=iw&source=hp&q=%D7%99%D7%91%D7%95%D7%90%D7%A0%D7%99%D7%9D%D7%9C%D7%9E %D7%AA%D7%A0%D7%95%D7%AA &元= &水溶液= F & OQ =

不正確顯示的那些(除非我使用Microsoft.JScript.GlobalObject.unescape)看起來像這樣: http://www.google.co.il/custom?q=%FA%EE%E9%F8 - %F6%E9%E9%F8%EB%E1 &客戶端=酒吧-0385896995839253 & FORID = 1

我可以理解,第二個字符串包含ISO-8859-1字符,並且正常工作在服務器端轉義的時候,但沒有編碼信息作爲URL的一部分

所以,我無法區分這兩種格式。或者我可以嗎?我是不是該?

的注意事項:當我複製&粘貼到瀏覽器地址欄中的網址,瀏覽器檢測到第一個爲「的Unicode(UTF-8)」,另一個爲「Windows-1255」

感謝名單 Yaron

回答

0

使用encodeURIComponent函數代替escape函數。

如果您正在讀取Request.QueryString集合中的值,它已經被解碼,所以您應該而不是使用HtmlDecode方法。