asp.net url编码问题处理

关于中文要进行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);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值