c# 尝试使用 WebClient 下载文件名中包含特殊字符的文件
c# Trying to download a file with WebClient that contains a special character in filename
我正在尝试下载文件名中带有特殊字符 'Ç' 的文件,但 URL 中出现该字符的异常字符串.
System.Net.WebException
HResult=0x80131509
Message=远程服务器返回一个错误:(404) Not Found。
来源=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");
您可以尝试对特殊字符使用 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。
我正在尝试下载文件名中带有特殊字符 'Ç' 的文件,但 URL 中出现该字符的异常字符串.
System.Net.WebException
HResult=0x80131509
Message=远程服务器返回一个错误:(404) Not Found。
来源=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");
您可以尝试对特殊字符使用 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。