C# 从绝对Uri创建一个新的Uri?

C# 从绝对Uri创建一个新的Uri?,c#,uri,spaces,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保留空格,而不是%20,后者不是我想要的 更清楚地说: 原始字符串= 新Ur

我想在替换原始Uri中的一些字符后创建一个新Uri。 我打电话来

string original = uri.AbsoluteUri.Replace("foo", "bar").Replace("xyz", "abc");
现在,在替换实例之后,当我尝试从字符串创建新Uri时

Uri newUri = new Uri(original);
Uri总是作为Uri的
ToString()
表示返回,即它是人类可读的,即Uri保留
空格
,而不是
%20
,后者不是我想要的

更清楚地说:

原始字符串=

新Uri=

预期=

那么,最后,我如何从上面的原始字符串创建一个新的Uri呢?

您可以使用该属性来显示转义的Uri

Console.WriteLine(newUri.OriginalString);

您看到的转义版本确实存在于
Uri
对象中,但对其调用的方法将显示未转义版本

我没有调用
ToString()
请仔细阅读问题!您是如何看到该值以确认URI未正确创建的?您的问题实际上没有提供有关您在何处看到新的错误URI的信息,因此我猜测并假设您正在某个地方打印它,该位置称为
ToString
方法(例如
Console.WriteLine
方法)。