一个关于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"));
![](/Images/OutliningIndicators/None.gif)
WEB.CONFIG设置如下:
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
需要获得的参数的页面(b.aspx)代码如下:
![](/Images/OutliningIndicators/None.gif)
操作方法: 从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的代码改成如下所示:
![](/Images/OutliningIndicators/None.gif)
输出结果如下:
UrlReferrer=http://localhost/a.aspx?key=??
Query=?key=%ca%d3
Query.ToString()=?key=%ca%d3
这说明使用ToString()的和没使用的结果是一样的.
请各位帮忙分析一下,谢谢!