URL的传递字符串问题小研究(续)

      前两天弄这个字符串在Url中传递的过程,还遇到给个问题,当时忘了写下来,今天提出来大家思考下,希望能够帮我解惑。

     我把字符串直接UrlEncode()编码,不替代“+”,传递到另一个页面,我跟踪了下,第二个页面接刚接到时字符串是正确的,但是把它UrlDeconde()后,加号就变成空格去了。如下:

1.页面上都是一致的,第一页面的后台代码:

Code

     2.第二页面的后台代码:

Code

     结果是:“未解码时:DK51+700中继站”。“解码后:DK51 700中继站”。

这个问题也很让我疑惑,似乎这个是最简单的办法啊,我只要将字符串UrlEncode()后直接传递就行了,不用替代“+”,接收到后直接使用,不要解码,是不是这样也是正确的呢?还是只是一时的正确。UrlEncode()编码和解码的真正原理是什么呢?希望有人能给出解答,我查了msdn,但是没有详细的讲解,希望有大侠给出资料。谢谢。

 后注:我查到原因,在Request.QueryString[]中,就内含了UrlDecode()函数,已经解码了。

posted on 2008-11-20 21:21 哪热 阅读(1290) 评论(12)  编辑 收藏 网摘 所属分类: C#

评论

#1楼 2008-11-20 21:38 紫色永恒      

去看下urlencode的源码   回复  引用  查看    

#2楼 2008-11-20 22:13 LuChaoShuai      

因为 Request.QueryString 已经帮我们做了UrlDecode的工作了。   回复  引用  查看    

#3楼[楼主] 2008-11-20 22:29 哪热      

@LuChaoShuai
那么UrlDecode岂不是无用武之地?UrlEncode和UrlDecode不需要配套使用吗?
  回复  引用  查看    

#4楼 2008-11-20 22:32 aaaaa[未注册用户]

2楼的正解!!   回复  引用    

#5楼 2008-11-20 22:34 aaaaa[未注册用户]

--引用--------------------------------------------------
哪热: @LuChaoShuai
那么UrlDecode岂不是无用武之地?UrlEncode和UrlDecode不需要配套使用吗?
--------------------------------------------------------
怎么不会灵活运用呢?如果你不是通过Request.QueryString的方式来获得参数值,不就需要UrlDecode了嘛~~
  回复  引用    

#6楼 2008-11-20 22:41 郄坚锐      

Request["name"]   回复  引用  查看    

#7楼[楼主] 2008-11-20 22:54 哪热      

@LuChaoShuai
我查看了写资料,Request.QueryString 是强制执行了一次UrlDecode的工作,谢谢你指点。
  回复  引用  查看    

#8楼 2008-11-20 23:08 小黑在北京      

原来是这样地。。。   回复  引用  查看    

#9楼 2008-11-21 08:34 sunlovesea      

学习了..Request.QueryString可以解码   回复  引用  查看    

#10楼 2008-11-21 08:52 James23[未注册用户]

哦!我也学习了   回复  引用    

#11楼 2008-11-23 10:01 飞得更高      

我也学习了   回复  引用  查看    

#12楼 2008-11-26 13:26 kankan1[未注册用户]

UrlDecode绝对不行   回复  引用    

发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 1337976




相关文章:

相关链接:
<2008年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

导航

统计

与我联系

搜索

 

常用链接

留言簿

我的标签

随笔分类

随笔档案

值得一去

积分与排名

最新评论

阅读排行榜

评论排行榜