2012-01-05 84 views
1

我們已將我們的測試環境之一切換到在IIS7上使用.NET 4。生產使用.NET 2.爲什麼ASP.NET 4/IIS7 html編碼我的查詢字符串?

某些URL,如

http://www.example.com/page.aspx?param1=<foo>&param2=<foo> 

沒有得到我們的stringindex代碼,查找<或>在Request.Url.ToString抓()。爲什麼?因爲我們檢查時他們顯示爲&lt;foo&gt;。這工作在.NET 2.

發生了什麼事?

注:格式中沒有錯誤。我的意思是HTML編碼。

回答

0

查詢字符串中的所有數據都需要進行URL編碼以便能夠正確解析,因此如果要抓取輸入內容,需要URL解碼查詢字符串。

HttpServerUtility.UrlDecode(Request.QueryString); 

http://msdn.microsoft.com/en-us/library/6196h3wt.aspx

URL編碼可確保所有瀏覽器將正確的URL字符串傳遞文本。諸如問號(?),&符號(&),斜槓標記(/)和空格之類的字符可能會被某些瀏覽器截斷或損壞。因此,這些字符必須以標記或查詢字符串編碼,其中字符串可以由瀏覽器在請求字符串中重新發送。

+1

不,數據正在** HTML **編碼,而不是* URL *編碼。 – Broam 2012-01-06 14:24:54