C# 新Uri,但保留转义的空格

C# 新Uri,但保留转义的空格,c#,.net,.net-core,C#,.net,.net Core,创建Uri的新实例时,字符串中的空格用%20转义 新Uri(“https://www.test.com?city=New 纽约”) 将转换为: https://www.test.com?city=New%20York 然而,另一方面: 新Uri(“https://www.test.com?city=New%20York“” 将转换为: https://www.test.com?city=New 约克 在创建新Uri时是否可以不取消景观?换句话说,我想保持 https://www.test.com

创建Uri的新实例时,字符串中的空格用%20转义

新Uri(“https://www.test.com?city=New 纽约”)
将转换为:
https://www.test.com?city=New%20York

然而,另一方面:
新Uri(“https://www.test.com?city=New%20York“”
将转换为:
https://www.test.com?city=New 约克

在创建新Uri时是否可以不取消景观?换句话说,我想保持
https://www.test.com?city=New%20York
在第二个示例中。

小提琴

如果运行以下代码,则可以获得转义输入:

string x = "https://www.test.com?city=New%20York";
Uri url = new Uri(x);

Console.WriteLine("written to string: " + url.ToString());
Console.WriteLine("query: " + url.Query);
Console.WriteLine("AbsoluteUri: " + url.AbsoluteUri);
Console.WriteLine("OriginalString: " + url.OriginalString);
这是示例输出:

written to string: https://www.test.com/?city=New York
query: ?city=New%20York
AbsoluteUri: https://www.test.com/?city=New%20York
OriginalString: https://www.test.com?city=New%20York

这回答了你的问题吗?那么,为什么不先替换%20,比如:
newURI(str.replace(“%20”),而不是真正的MathewHD。当使用
Uri.EscapeUriString(URL)
时,它会将URL调整为
https://www.test.com/?city=New%2520York
@AshkanMobayenKhiabani确实是可能的。这是在小提琴中使用.NET 5