【发布时间】:2017-01-09 21:38:21
【问题描述】:
我有以下代码:
string myString = "test://mytest/v1.0~admin#1~password";
var myUri = new Uri(myString);
我发现# 之后的部分不在myUri.LocalPath 中。
我尝试用'或&替换hash(#),没有问题。我在哪里可以知道 # 这样的所有特殊字符会在 Uri 中导致同样的问题?
【问题讨论】:
-
# 之后的部分不应该 成为
LocalPath的一部分...#字符分隔 URI 的片段部分。 -
我发现下面的代码可以将 # 保留在 uri 中: myString = myString.Replace("#", Uri.HexEscape('#'));我在这里找到它:social.msdn.microsoft.com/Forums/vstudio/en-US/… C# 中是否有一个通用方法可以为我对整个字符串进行这种转换?如果有更多特殊字符,而不仅仅是“#”
标签: c# encoding uri special-characters