我正处于一个静止状态,我有一些路径。这条路可能就像“jadajada.com/My Site.html”。
我使用HttpUtility.UrlEncode对网址进行编码,这很棒。但是,我有一个问题,每当我有空格时,它会用“+”符号替换它。我需要一个“ - ”符号。
此方法可以执行此任务吗?如果是这样,那是什么样的编码等。
(是的,我知道你可以使用string.Replace,但现在请避免使用该解决方案; - )
答案 0 :(得分:4)
用"-"
替换空格并不是编码,因为没有标准的解码器; "+"
是正确的。
但是,如果这仅用于显示,并且只要您的代码不依赖于此值(例如,要执行与 空间 strong>)您可以在编码之前简单地执行.Replace(" ","-")
。在有损场景中,您可能还想替换其他几个,截断过长的字符串等。
一旦有-
对其进行编码应该是无操作(即它不会改变)。
答案 1 :(得分:1)
空格可以作为+
或%20
进行网址编码。这就是空间编码的方式,因此没有内置的方法将其编码为任何其他任意字符。
如果您想用-
代替空格而不是编码,则替换空格,因此Replace
方法适合使用。
答案 2 :(得分:1)
UrlEncoding永远不会用 - 自己替换空格,因为它不是URL内部空间的表示。它将使用+或%20。
因此,如果你真的想要这样做,我认为string.Replace
是你最好的选择,但如果你不想在结果URL中包含空格,你应该在编码之前从URL中删除空格它首先。
答案 3 :(得分:0)
您希望将其从+更改为 - 的一个原因是,当URL包含+时,URL重写不起作用(除非您完全禁用双重转义)。将+更改为
更容易