Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何对句点进行URL编码?_C#_Urlencode_Url Encoding - Fatal编程技术网

C# 如何对句点进行URL编码?

C# 如何对句点进行URL编码?,c#,urlencode,url-encoding,C#,Urlencode,Url Encoding,我需要URL编码一些句点,因为我必须传递一些文档路径,就像这样 http://example.com/test.aspx?document=test.docx 所以test.docx给我造成了一个非法字符的错误。所以我需要把它改成 . --> %2E 我尝试使用Server.UrlEncode string b = Server.UrlEncode("http://example.com/test.aspx?document=test.docx"); 但我明白了 "http%

我需要URL编码一些句点,因为我必须传递一些文档路径,就像这样

http://example.com/test.aspx?document=test.docx
所以test.docx给我造成了一个非法字符的错误。所以我需要把它改成

.  -->  %2E
我尝试使用Server.UrlEncode

  string b = Server.UrlEncode("http://example.com/test.aspx?document=test.docx");
但我明白了

"http%3a%2f%2fexample.com%2ftest.aspx%3fdocument%3dtest.docx"

因此,我是否必须像字符串替换一样手动使用并用该代码替换所有句点?

没有问题的句点(假设%2E没有解决问题)。句点是一个完全有效的URL字符,不管问题是什么,它不是句点。检查正在抛出的错误的堆栈跟踪或发布完整的错误详细信息

您不应该对整个路径进行URL编码。仅查询字符串参数值

如果你这样做,你还会犯错误吗

我不会用一根十英尺长的杆子碰他。然而,摆脱这一时期并不一定能阻止SharePoint的恶作剧。但我想你至少应该试试

Server.UrlEncode("test.docx").Replace(".", "%2E");

这是一个非常古老的问题,但我在寻找类似问题时遇到了这个问题。我在我的url的末尾加了一个“/”号,上面有句号,解决了问题。

你确定是
?在我看来,这是一个非常有效的查询字符串。sharepoint不喜欢它。我认为在查询字符串或其他任何内容中,它使用url路径的一部分来查找根文件夹,并且不能包含句点。%极限测试的2E似乎解决了这个问题。我在使用ASP.NET网页时遇到了类似的问题。示例:将抛出错误消息。将尝试用“%2E”替换句点。运气好吗,@Tod1d?我在一个非常相似的ASP.NET Web API url上遇到了同样的问题。@Timflanklin和其他有同样问题的人,请参见下面Andrew的答案。-后面的斜杠似乎可以解决这个问题在我看来,这是一个非常愚蠢的错误这在Web API中对我起了作用我所能做的就是摇头。DX仅是对任何使用此答案的人的注释。这将适用于大多数用例,包括提供的一个OP。如果URL以点字符结尾,这不起作用。这是一个很好的解决方案,但如果用户重新加载页面,他会再次得到404,AngularI不相信,但这是真的。添加斜杠可以解决除尾随句点以外的大多数问题。
Server.UrlEncode("test.docx").Replace(".", "%2E");