C# URI将控制符号编码为绝对路径

C# URI将控制符号编码为绝对路径,c#,encoding,uri,C#,Encoding,Uri,我们正在向具有多个端点的API发送数据。为此,我们将基本URL放入一个变量中,并将路由信息附加到该变量中。但是请求无法解析为服务,因为URI对象正在将不可打印的字符放入路径中。 用于创建URI对象的代码: var uri = new Uri(_url + "/api/v1/create"); 结果是: https://localhost%E2%80%8B/api%E2%80%8B/v1%E2%80%8B/create 我们使用的是.NETFramework 4.7.2。

我们正在向具有多个端点的API发送数据。为此,我们将基本URL放入一个变量中,并将路由信息附加到该变量中。但是请求无法解析为服务,因为URI对象正在将不可打印的字符放入路径中。 用于创建URI对象的代码:

var uri = new Uri(_url + "/api/v1/create");
结果是:

https://localhost%E2%80%8B/api%E2%80%8B/v1%E2%80%8B/create
我们使用的是.NETFramework 4.7.2。
有人知道发生了什么吗?

正如canton7所指出的,问题在于零长度空间
我们重新输入了整个方法调用——不仅仅是URL——现在系统正在运行。谢谢。

正如canton7所指出的,问题在于零长度空间
我们重新输入了整个方法调用——不仅仅是URL——现在系统正在运行。谢谢。

您是将
“/api/v1/create”
字符串复制/粘贴到您的问题中,还是重新键入到您的问题中?我重新键入了,但没有任何区别。我已经在代码文件中重新键入了URL,甚至尝试了硬编码路径。
%E2%80%8B
是一个-我怀疑它存在于您的原始字符串中,并且不是由
Uri
引入的。我们选择了一个核心选项,并重新键入了所有调用。我不知道符号是如何在重新键入后幸存下来的,但你们帮了我们很大的忙,帮了我们锁定了错误。版本控制系统的
diff
功能应该能够告诉您是哪一个更改了。您将
“/api/v1/create”
字符串复制/粘贴到了您的问题中,还是将它重新键入了您的问题中?我重新键入了它,但这没有任何区别。我已经在代码文件中重新键入了URL,甚至尝试了硬编码路径。
%E2%80%8B
是一个-我怀疑它存在于您的原始字符串中,并且不是由
Uri
引入的。我们选择了一个核心选项,并重新键入了所有调用。我不知道符号是如何在重新键入后幸存下来的,但你们帮了我们很大的忙,帮了我们锁定了错误。版本控制系统的
diff
功能应该能够告诉您更改了哪一个