1
我有下面的代码:Uri中的所有特殊字符是什么?
string myString = "test://mytest/v1.0~admin#1~password";
var myUri = new Uri(myString);
我发现#
后的部分不在myUri.LocalPath
。
我试图用'
或&
替换散列(#
),这是没有问题的。在哪里我可以知道像#
这样的特殊字符会在Uri中引起同样的问题?
#之后的部分不是*应该*成为LocalPath的一部分......'#'字符分隔了URI的片段部分。 –
我发现下面的代码可以保持uri中的#:myString = myString.Replace(“#”,Uri.HexEscape('#'));我在这里找到它:https://social.msdn.microsoft.com/Forums/vstudio/en-US/b1c72950-e07e-4935-bd70-7b5d68da6437/uri-class-not-works-for-ftpwebrequest-if-having -special-characters-in-uri-path-help?forum = netfxbcl在C#中是否有一个常用的方法会对整个字符串进行这种转换?如果有更多的特殊字符,不只是“#” – spspli