首页 > 解决方案 > 新的 Uri,但保持空间逃脱

问题描述

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

new Uri("https://www.test.com?city=New York") 将转换为: https://www.test.com?city=New%20York

但是另一种方式: new Uri("https://www.test.com?city=New%20York") 将转换为: https://www.test.com?city=New York

创建新的 Uri 时是否可以不转义?换句话说,我想保留 https://www.test.com?city=New%20York第二个例子。

标签: c#.net.net-core

解决方案


在这里提琴

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

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

推荐阅读