asp.net url编码问题处理

来源:互联网 发布:java ssm框架项目实例 编辑:程序博客网 时间:2024/06/04 19:11

关于中文要进行url编码本是常识的东西,可是在有些复杂的环境中,编码是让人很头痛的东西。

最近调试了一个url编码问题。

页面编码格式是gb2312,可是配置的编码格式是utf-8 使用aspnetpager分页控件

具体使用是:

url参数是中文,可是我要使用aspnetpager进行url重写,aspnetpager重写参数格式%a%,且a不能进行编码的特殊处理,只能自己从url处获取还不进行任何 也就是原样。然后对这个链接global再重写一次。

例如我实际地址是:aaa.aspx?page=1&a=中文

我要让页码显示 aaa/1/中文

这样的话如果参数是中文,同样分页也是中文的。ie中尚好,一切正常。

可是入到firefox,chrome中可坏了,这两个浏览器(不知道别的会不会,测试用的是这两个)分页中直接给我显示解过码的中文的,应该是我重写的时候解码了,然后ff,chrome会自动按照我的页面编码方式给我重新编码,这就错了。程序就会解出乱码来。

刚开始的时候一直想在接收时处理url,无论按什么格式解码均不行,后来我看到分页的参数是中文,我就想我要在他分页前,让url的参数还为编码的格式(如果不编两次码,解一次码会变成中文(我重写的时候会解一次码))

解决方法是在页面需要进行url传值之前对url指定编码,在接收的时候相应的解码(必须解码,传之前编码会对url处理两次即编码两次)。

例:

编码:

HttpUtility.UrlEncode(fArea,System.Text.Encoding.Default)

解码:

HttpUtility.UrlDecode(Request.QueryString["f"],Encoding.Default);

原创粉丝点击