从Absolute Uri创建一个新的Uri是什么?

时间:2014-11-08 14:26:49

标签: c# uri spaces

我想在更换原始Uri中的一些角色后创建一个新的Uri。 我在打电话

string original = uri.AbsoluteUri.Replace("foo", "bar").Replace("xyz", "abc");

现在,在替换实例后,当我尝试从字符串

创建一个新的Uri时
Uri newUri = new Uri(original);

Uri总是作为Uri的ToString()表示返回,即它是人类可读的,即 - Uri保留Spaces而不是%20 NOT 我想拥有的。

更清晰:

原始字符串= http://foo.example.com/images/Cute%20Cats/New%20Images/cat-1.jpg

New Uri = http://foo.example.com/images/Cute Cats/New Images/cat-1.jpg

预期= http://foo.example.com/images/Cute%20Cats/New%20Images/cat-1.jpg

那么,最后我怎样才能从上面的原始字符串中创建一个新的Uri呢?

1 个答案:

答案 0 :(得分:0)

您可以使用OriginalString属性显示转义的uri。

Console.WriteLine(newUri.OriginalString);

您的Uri对象中存在的转发版本确实存在,但调用它的ToString方法将显示未转义的版本。