解决Request.UrlReferrer.ToString() 乱码问题
如果在web.config里配置了编码为GB2312,当QueryString里又有中文,用Request.UrlReferrer.ToString() 就会出现乱码,MSDN的解释如下:
实例,它包含 Uri 实例的非转义规范化表示形式。除了 #、? 和 %,所有字符均为非转义字符。
监控一下你就会发现:
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/
加支付宝好友偷能量挖...