如何阻止System.Uri类取消编码传递给其构造函数的编码URL?请考虑以下代码: -
Uri uri = new Uri("http://foo.bar/foo%2FBar");
Console.WriteLine(uri.AbsoluteUri);
uri = new Uri("http://foo.bar/foo%2FBar", false);
Console.WriteLine(uri.AbsoluteUri);
uri = new Uri("http://foo.bar/foo%2FBar", true);
Console.WriteLine(uri.AbsoluteUri);
Run Code Online (Sandbox Code Playgroud)
在每种情况下,输出都是"http://foo.bar/foo/bar".如何确保在实例化Uri实例后,Uri.AbsoluteUri将返回"http://foo.bar/foo%2FBar"?
Uri尽管您可以使用该类来检索用于初始化的字符串,但该类不用于生成转义的 URI uri.OriginalString。如果您需要安全地重新编码 URI,您可能应该使用 UrlEncode。
另外,根据http://msdn.microsoft.com/en-us/library/9zh9wcb3.aspxdontEscape已被弃用,并且始终为 false。
更新:
似乎有人找到了一种方法(黑客)来做到这一点 - GETting a URL with an url-encoded斜杠
| 归档时间: |
|
| 查看次数: |
5697 次 |
| 最近记录: |