如何在System.Net.WebUtility.UrlEncode中强制%20而不是+

时间:2015-09-09 16:27:27

标签: c# .net

我需要在类库集合中编码一个URL,我不想引用System.Web。 URL包含多个空格

https://query.yahooapis.com/v1/public/yql?q=select * from yahoo.finance.quote where  symbol in ("YHOO","AAPL")&format=json&diagnostics=true&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback=

当我使用System.Net.WebUtility.UrlEncode()时,空格将替换为" +"哪个不起作用。我需要用%20替换它们

如何在不引用System.Web的情况下实现此目的?

2 个答案:

答案 0 :(得分:14)

您可以从System程序集中尝试Uri.EscapeUriString,它会转义URI字符串。对于它返回的问题的字符串:

https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quote%20where%20%20symbol%20in%20(%22YHOO%22,%22AAPL%22)&format=json&diagnostics=true&env=store%253A%252F%252Fdatatables.org%252Falltableswithkeys&callback=

答案 1 :(得分:5)

Uri.EscapeDataString()更适合您,因为Uri.EscapeUriString()可以跳过一些特殊字符