繁体   English   中英

HttpUtility.UrlEncode-减号而不是加号?

[英]HttpUtility.UrlEncode - Minus instead of plus?

我处于一个可以找到一些路径的环境中。 该路径可能类似于“ jadajada.com/我的Site.html”。

我使用HttpUtility.UrlEncode对URL进行编码,这很棒。 但是,我有一个问题,就是每当我有一个空格时,它都会用一个“ +”号代替它。 我需要一个“-”号。

此方法可以执行此任务吗? 如果是这样,则采用哪种编码方式。

(是的,我知道您可以使用string.Replace,但是请暂时避免该解决方案;-)

"-"代替空格并不是真正的编码 ,因为没有标准的解码器。 "+"是正确的。

但是,如果这仅用于显示,并且只要您的代码不依赖此值(例如,为了进行精确的子弹匹配(期望空格 )),您就可以简单地执行.Replace(" ","-")然后再编码。 在这种有损耗的情况下,您可能还想替换其他一些,截断过长的字符串等。

一旦有-对其进行编码,就应该是无操作(即不会改变)。

空格可以URL编码为+%20 这是对空格进行编码的方式,因此没有将其编码为任何其他任意字符的内置方法。

如果要用-代替空格(不是编码),它就是替换,因此Replace方法将适合使用。

UrlEncoding永远不会单独用-代替空格,因为这不是URL内空格的表示。 它将使用+或%20。

因此,如果您实际上想执行此操作,那么我认为string.Replace是您的最佳选择,但是如果您不希望结果URL中包含空格,则可能应该先删除URL中的空格,然后再对其进行编码。

您希望将其从+更改为-的原因之一是,当URL包含+时,URL重写将不起作用(除非您完全禁用双重转义)。 将+更改为-更容易

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM