一個關于UrlReferrer的小問題 (asp.net 1.1)
在ASP.NET 1.1 頁面中
頁面a.aspx 中將漢字做為k的參數傳遞 如: a.aspx?key=%ca%d3 (參數經過編碼) ,b.aspx使用Request.UrlReferrer來獲取上一頁的地址.
漢字編碼方式如下:
1
HttpUtility.UrlEncode(key.Text.Trim(),System.Text.Encoding.GetEncoding("gb2312"));
HttpUtility.UrlEncode(key.Text.Trim(),System.Text.Encoding.GetEncoding("gb2312"));WEB.CONFIG設置如下:
<globalization
requestEncoding="gb2312"
responseEncoding="gb2312"
/>需要獲得的參數的頁面(b.aspx)代碼如下:
Response.Write("UrlReferrer="+Request.UrlReferrer.ToString()+"<br />Query="+Request.UrlReferrer.Query);操作方法: 從a.aspx點了一個鏈接到b.aspx
輸出結果居然是這樣:
UrlReferrer=http://localhost/a.aspx?key=??
Query=?key=%ca%d3
這里的 key=%ca%d3 是我想要的結果,但為什么Request.UrlReferrer.ToString()獲得的Key卻是問號?
Request.UrlReferrer.ToString()和Request.UrlReferrer.Query 在編碼上難道有什么區別嗎?
------------------------------------------------------------------------------------------
根據 awuzi 的提示我又做了以下嘗試(主要是驗證使用ToString()和不使用的區別):
將b.aspx的代碼改成如下所示:
Response.Write("UrlReferrer="+Request.UrlReferrer.ToString()+"<br />Query="+Request.UrlReferrer.Query+"<br />Query.ToString()="+Request.UrlReferrer.Query.ToString());輸出結果如下:
UrlReferrer=http://localhost/a.aspx?key=??
Query=?key=%ca%d3
Query.ToString()=?key=%ca%d3
這說明使用ToString()的和沒使用的結果是一樣的.
請各位幫忙分析一下,謝謝!
浙公網安備 33010602011771號