WebUtility.HtmlEncode 不转换 `:`

WebUtility.HtmlEncode doesn't convert `:`

我向 REST Web 服务发出请求。 Web 服务接受以下格式的日期参数:

?date=0001-01-01T00:00:00Z

Web 服务仅在参数中的冒号转换为 %3A 时才接受,如下所示

?date=0001-01-01T00%3A00%3A00Z

我相信我可以使用 WebUtility.HtmlEncode() 进行此转换。但是在使用它之后,冒号不会被解析为 %3A。

我错过了什么吗?如何获取以下格式的参数?

?date=0001-01-01T00%3A00%3A00Z

我已经为这个简单的事情浪费了很多时间,我不想编写代码只做这个...一定有一些 .NET 库已经可以做到这一点。

: 是 HTML 中的有效字符,这就是 HtmlEncode 未触及它的原因。您正在处理 URL,因此您需要 UrlEncode:

var url = WebUtility.UrlEncode(":"); //%3A