c#试图使用WebClient下载文件名中包含特殊字符的文件

问题描述 投票:0回答:1

例如,我尝试下载文件名中带有特殊字符'Ç'的文件,但URL字符串中出现了该字符异常。

System.Net.WebExceptionHResult = 0x80131509消息=远程服务器返回错误:(404)找不到。Source = System.Net.Requests

例如:http://www.somesite.com/abcdç.pdf将在WebClient中创建一个例外。使用URI下载文件的另一种方法是什么?如何解决此异常?

这里有一些示例代码:

client.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");
client.Encoding = System.Text.Encoding.UTF8;
byte[] archiveData = wc.DownloadData("http://www.somesite.com/abcdç.pdf");
c# webclient
1个回答
1
投票

您可以尝试对特殊字符使用Uri编码,例如。

www.somesite.com/abcd%C3%A7.pdf

您可以像这样获得安全的Uri

Uri u = new Uri("http://www.somesite.com/abcdç.pdf");
byte[] archiveData = wc.DownloadData(u.AbsoluteUri);

u.AbsoluteUri将为您提供编码的URI。

© www.soinside.com 2019 - 2024. All rights reserved.