首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HttpServerUtility.UrlPathEncode vs HttpServerUtility.UrlEncode

HttpServerUtility.UrlPathEncode vs HttpServerUtility.UrlEncode
EN

Stack Overflow用户
提问于 2010-11-10 23:04:15
回答 3查看 14.5K关注 0票数 23

HttpServerUtility.UrlPathEncodeHttpServerUtility.UrlEncode有什么不同?什么时候我应该选择一个而不是另一个?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-11-10 23:21:53

更新:从4.5开始,根据微软的参考,微软建议只使用UrlEncode。此外,以前在MSDN中列出的信息并不完全描述这两种方法的行为-请参阅注释。

不同之处在于空间转义- UrlEncode将它们转义为+符号,UrlPathEncode转义为%20。+和%20只有在它们是QueryString部分per W3C的一部分时才是等价的。所以你不能用+号转义整个URL,只能用querystring部分。底线是UrlPathEncode总是更好的imho

可以使用UrlEncode()方法或UrlPathEncode()方法对

进行编码。但是,这些方法返回不同的结果。UrlEncode()方法将每个空格字符转换为加号字符(+)。UrlPathEncode()方法将每个空格字符转换为字符串"%20",该字符串以十六进制表示法表示一个空格。在对网址的路径部分进行编码时,请使用UrlPathEncode()方法,以保证解码后的网址一致,而与执行解码的平台或浏览器无关。

http://msdn.microsoft.com/en-us/library/4fkewx0t.aspx

票数 19
EN

Stack Overflow用户

发布于 2012-12-22 00:12:41

UrlEncode对于查询字符串值非常有用(因此,在每个=的左边,尤其是右边)。

此url、foo、fooval、bar和barval中的

应分别进行UrlEncode:

http://www.example.com/whatever?foo=fooval&bar=barval

UrlEncode将所有内容(如?、&、=和/、重音字符或其他非ASCII码等)编码为%样式的编码,但空格除外。这是表单风格的编码,最适合你想要放入查询字符串(或者url中的两个斜杠之间)作为参数的东西,而不会与url的控制字符(如&)弄得乱七八糟。否则,用户表单输入或db值中不合适的&或=可能会破坏某些东西。

编辑:与UrlEncode非常接近,可能更可取,尽管我不知道确切的区别。

UrlPathEncode对查询字符串的其余部分很有用,它会影响?左边的所有内容。

在此url中,整个url (从http到barval)都应通过UrlPathEncode运行。

http://www.example.com/whatever?foo=fooval&bar=barval

UrlPathEncode不编码?、&、=或/。但是,它和UrlEncode一样,使用%符号对重音/非ASCII字符进行编码,空格也变成%20。这对于确保url有效很有用,因为空格和重音字符不是。它不会接触到您的查询字符串(?右边的所有内容),所以您必须使用上面的UrlEncode对其进行编码。

票数 27
EN

Stack Overflow用户

发布于 2019-03-07 03:27:17

为了尽可能简单地解释它:

代码语言:javascript
复制
HttpUtility.UrlPathEncode("http://www.foo.com/a b/?eggs=ham&bacon=1") 

变成了

代码语言:javascript
复制
http://www.foo.com/a%20b/?eggs=ham&bacon=1

代码语言:javascript
复制
HttpUtility.UrlEncode("http://www.foo.com/a b/?eggs=ham&bacon=1") 

变成了

代码语言:javascript
复制
http%3a%2f%2fwww.foo.com%2fa+b%2f%3feggs%3dham%26bacon%3d1
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4145823

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档