Я пытаюсь получить файл через FTP по FtpWebrequest - загрузка завершается неудачно, когда имя файла содержит немецкий Umlaute, такой как ä, ö, ü.
Код:
FtpWebRequest request2 = (FtpWebRequest)WebRequest.Create("ftp://re-web-03.servername.de/" + "filename with ä.xls");
request2.Method = WebRequestMethods.Ftp.DownloadFile;
request2.Credentials = new NetworkCredential("xxx", "xxx");
using (FtpWebResponse response = (FtpWebResponse)request2.GetResponse()) { // <-- Exception: The remote server returned an error: (550) File unavailable ...
При изменении имени файла на «имя файла с ae.xls» это работает.
Исключение составляют:
WebException: удаленный сервер возвратил ошибку: (550) файл недоступен (например, файл не найден, нет доступа).
Список каталогов через ftp работает хорошо и показывает имя файла:
FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://re-web-03.servername.de/");
request.Method = WebRequestMethods.Ftp.ListDirectory;
request.Credentials = new NetworkCredential("xxx", "xxx");
using (FtpWebResponse response = (FtpWebResponse)request.GetResponse())
{
StreamReader sr = new StreamReader(response.GetResponseStream());
while (!sr.EndOfStream)
{ Console.WriteLine(sr.ReadLine()); } // --> output is "filename with ä.xls"
}
Вывод «имя файла с ä.xls».
У кого-нибудь есть совет, как справиться с этой проблемой - я не имею никакого влияния на присвоение имен этим файлам ...
Большое спасибо заранее Тоби