解决Request.UrlReferrer.ToString() 乱码问题

  如果在web.config里配置了编码为GB2312,当QueryString里又有中文,用Request.UrlReferrer.ToString() 就会出现乱码,MSDN的解释如下:

实例,它包含 Uri 实例的非转义规范化表示形式。除了 #、? 和 %,所有字符均为非转义字符。

  监控一下你就会发现:

Request.UrlReferrer

解决办法

1)用Request.UrlReferrer.OriginalString和 Request.UrlReferrer.AbsoluteUri不会乱码。

2)用Request.UrlReferrer.GetComponents(UriComponents.AbsoluteUri, UriFormat.UriEscaped)也可以得到正确答案。

3)当然还有其它方式:Request.ServerVariables["HTTP_REFERER"];这种用环境变量取的方式,Request.UrlReferrer.

其实是URI对象,构造时是应该用的是环境变量里面的,开始以为是一样的,相当于OriginalString的值。

来源:http://www.zds.name/aspnet/request-urlreferrer-tostring-luanma/

加支付宝好友偷能量挖...


评论(0)网络
阅读(448)喜欢(0)Asp.Net/C#/WCF