首页 新闻 会员 周边 捐助

urlencode与urldecode问题

0
悬赏园豆:10 [已解决问题] 解决于 2010-03-03 15:52

问题是这样的:

1.我在一个连接里,就像这样sample.aspx?orderid=xxx,我对这个连接中的xxx先加密,然后用urlencode

2.在sample.aspx页面,我用this.Request.QueryString,接受这个参数,我先urldecode,然后解密,这样有问题吗?

对于有些xxx,不能还原到原来的值。

请高手指点一下。谢谢。

呜呜呜呜的主页 呜呜呜呜 | 初学一级 | 园豆:175
提问于:2010-03-02 11:23
< >
分享
最佳答案
0

Request.QueryString已经自动UrlDecode,无需重复。

 

但值得注意的是,UrlEncode和UrlDecode都与字符编码(Encoding)有关,只有相同的Encoding才能得到相同的结果。

收获园豆:4
Ivony... | 菜鸟二级 |园豆:289 | 2010-03-02 13:05
哈哈,Request.QueryString好像是自动UrlDecode 这么说Request.QueryString出来后不要再UrlDecode了。 你说的encoding保持相同,我都没有设什么encoding,直接默认。应该没问题吧?
呜呜呜呜 | 园豆:175 (初学一级) | 2010-03-02 13:19
其他回答(7)
0

用这个看看,制定下编码的类别

 HttpUtility.UrlDecode("+++%@#@#", System.Text.Encoding.UTF8);

收获园豆:1
woody.wu | 园豆:3621 (老鸟四级) | 2010-03-02 11:33
0

楼上说了一种,不过这个类型一般是默认的,所以觉得问题应该不会太多的出现在这里,到是觉得你确认下你加密的东西,加密后线保证解密的数据是正确的,然后在测试下。最可能的问题个人觉得应该是加密后是否还存在特殊字符等。

其实了个人一点建议,如果你加密后的字符串如果是在大小写字母和数字的范畴,哪么这个串你是不用再进行urlEncode的。也就是一般使用UrlEncode是为了对某一部分特殊数据做Url编码的。

收获园豆:1
西越泽 | 园豆:10775 (专家六级) | 2010-03-02 11:43
0

检查一下你加密后是否存在特殊字符

收获园豆:1
查尔斯 | 园豆:3832 (老鸟四级) | 2010-03-02 12:09
0

呵呵!很同意楼上的说法!Request.QueryString已经自动UrlDecode,无需重复!!

收获园豆:1
langford | 园豆:710 (小虾三级) | 2010-03-02 13:40
0

 HttpUtility.UrlEnecode("")与 HttpUtility.UrlDecode("")不设置Encoding,是会容易出现编码后解码还是乱码的情况。

还有Server.UrlEncode("")与Server.UrlDecode("")也是可以使用的。

收获园豆:1
steven hu | 园豆:542 (小虾三级) | 2010-03-02 13:44
0

Request.QueryString已经自动UrlDecode,无需重复

收获园豆:1
风影极光 | 园豆:1573 (小虾三级) | 2010-03-02 14:26
0

有的会自动编码,不过你可以先测试下看下编码后是什么样子,我一直用这个工具测试,推荐你也用,国产的,http://www.ofmonkey.com/tools/encode

独孤飞 | 园豆:283 (菜鸟二级) | 2017-01-18 09:07
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册