J'essaie d'obtenir un fichier via FTP par FtpWebrequest - le téléchargement échoue lorsque le nom de fichier contient Umlaute allemand comme ä, ö, ü.FtpWebrequest - le nom de fichier contient allemand "Umlaute" comme ä, ö
code:
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 ...
Lorsque vous modifiez le nom du fichier "nom de fichier avec ae.xls" cela fonctionne. L'exception est: WebException: Le serveur distant a renvoyé une erreur: (550) Fichier indisponible (par exemple, fichier introuvable, pas d'accès).
Listing via un répertoire ftp fonctionne bien et montre le nom du fichier:
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"
}
sortie est "nom de fichier avec ä.xls".
Est-ce que quelqu'un a une astuce comment faire face à ce problème - je n'ai aucune influence sur la dénomination que les fichiers ...
Un grand merci à l'avance Tobi
Merci beaucoup - Jep il est un problème d'encodage - j'ai essayé d'obtenir la liste des fichiers (Directory Listing) également en ASCII (StreamReader sr = new StreamReader (réponse.GetResponseStream(), Encoding.ASCII);) - mais cela n'a pas fait l'affaire ... –