5

我正在使用 .NET 3.5。

此处描述的两种解决方案(配置文件中的属性"genericUriParserOptions"和构造函数参数"dontEscape")都不适用于 .NET 3.5。

我希望URI构造函数不会逃避(意味着我想要逃避URL部分)任何东西。现在我不能使用配置文件

genericUriParserOptions="DontUnescapePathDotsAndSlashes"

因为此属性仅适用于 .NET 4.0。但我也不能"dontEscape"在构造函数中使用参数,URI因为构造函数在 .NET 3.5 中已过时并且始终为false.

如何URI在 .NET 3.5 中创建带有转义字符串?

4

1 回答 1

1

您应该只对用户名或 URL 中可能无效的其他部分进行编码。URL 编码 URL 可能会导致问题,因为这样的事情

string url = HttpUtility.UrlEncode("http://www.google.com/search?q=Example");

将产生

http%3a%2f%2fwww.google.com%2fsearch%3fq%3dExample

这显然不会很好地工作。相反,您应该只对查询字符串中的键/值对的值进行编码,如下所示:

string url = "http://www.google.com/search?q=" + HttpUtility.UrlEncode("Example");

谢谢。

于 2014-01-08T14:16:32.053 回答