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

标签 c# .net url .net-4.0 urlencode

我处在一个我有一些路径的情况下。此路径可能类似于“jadajada.com/My Site.html”。

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

这个方法能完成这个任务吗?如果是这样,什么样的编码等。

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

最佳答案

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

但是,如果这仅用于显示,并且只要您的代码不依赖于此值(例如,执行期望 空格 的精确 slug 匹配strong>) 你可以在编码之前简单地做一个 .Replace("","-") 。在那种有损的情况下,您可能还想替换一些其他的、截断过长的字符串等。

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

关于c# - HttpUtility.UrlEncode - 减号而不是加号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5565791/

相关文章:

c# - 使用 C# 和 VS2008 linq to xml

c# - 如果我在属性的 getter 中抛出异常,是否可以在 catch block 中获取属性的名称?

http - URL 路径和查询字符串和片段的好名称?

c# - SMTP 发送获取 SmtpFailedRecipientException

c# - C#可枚举范围

c# - 可以使用 WM_NCPAINT 并仍然在 Aero 上获得窗口后面的阴影吗?

c# - 后台 worker - C#

.net - Powershell将Excel日期读取为5位数字

wordpress - get_home_url() 只返回当前 URL

bash - 从 bash 脚本中的 URL 中提取文件名和路径