我使用的是.NET 3.5。
描述here(配置文件中的属性"genericUriParserOptions"
和构造函数参数"dontEscape"
)的两个解决方案都不适用于.NET 3.5。
我希望URI
构造函数不会转义(意味着我希望转义URL
部分)。现在我无法使用配置文件
genericUriParserOptions="DontUnescapePathDotsAndSlashes"
因为此属性仅适用于.NET 4.0。但是我不能在"dontEscape"
构造函数中使用URI
参数,因为构造函数在.NET 3.5中已经过时,并且始终是false
。
如何在.NET 3.5中创建带有转义字符串的URI
?
答案 0 :(得分: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");
感谢。