您的位置:首页 > 编程语言 > ASP

一个关于UrlReferrer的小问题 (asp.net 1.1)

2007-04-26 13:48 375 查看
在ASP.NET 1.1 页面中
页面a.aspx 中将汉字做为k的参数传递 如: a.aspx?key=%ca%d3 (参数经过编码) ,b.aspx使用Request.UrlReferrer来获取上一页的地址.

汉字编码方式如下:

1HttpUtility.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()的和没使用的结果是一样的.

请各位帮忙分析一下,谢谢!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐