如何对包含哈希的路径进行编码?如何正确编码包含哈希(#)的路径?请注意,哈希不是片段(书签?)指示符,而是路径名的一部分。例如,如果有这样一个路径:http://www.contoso.com/code/c#/somecode.cs例如,尝试这样做时会出现问题:UrimyUri=newUri("http://www.contoso.com/code/c#/somecode.cs");似乎将散列解释为片段指示符。手动将#替换为%23感觉不对。还有其他字符需要替换吗?Uri和HttpUtility中有一些转义方法,但似乎没有一个这样做。您不应使用多个字符。您可以尝试按照自己的方式完成这个非常枯燥的文档,或者参考StackOverflow上这个方便的URL摘要。如果您查看此站点,您会看到他们的C#问题被编码为%23。堆栈溢出C#问题您可以使用(对于ASP.NET)执行此操作:string.Format("http://www.contoso.com/code/{0}/somecode.cs",Server.UrlEncode("c#"));或者对于类库/桌面:string.Format("http://www.contoso.com/code/{0}/somecode.cs",HttpUtility.UrlEncode("c#"));很多朋友发现了一个重复的Java问题:HTTPURLaddressencodinginJava然而.NetUri类并没有提供我们需要的构造函数,而UriBuilder提供了。因此,为了构建路径包含非法字符的正确URI://通过显式指定组成部分来构建Uri。这样,哈希就不会与片段标识符UriBuilderuriBuilder=newUriBuilder("http","www.contoso.com",80,"/code/c#/somecode.cs");混淆。Debug.WriteLine(uriBuilder.Uri);//这输出:http://www.contoso.com/code/c%23/somecode.cs请注意它如何不必要地转义URI中不需要转义的部分(如://部分),HttpUtility.UrlEncode就是这种情况。看起来这个类的目的实际上是编码URL的查询字符串/片段部分——而不是方案或主机名。使用UrlEncode:System.Web.HttpUtility.UrlEncode(string)以上是C#学习教程:Howtoencodethepathcontainingthehash?如果分享的内容对你有用,需要了解更多C#学习教程,希望大家多多关注——classProgram{staticvoidMain(string[]args){stringurl="http://www.contoso.com/code/c#/somecode.cs”;字符串enc=HttpUtility.UrlEncode(url);Console.WriteLine("原始:{0}...编码{1}",url,enc);控制台.ReadLine();}}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
