![]() |
Indy 10 TIdFtp Probleme mit Umlauten
Hallo Forum,
obwohl ich schon länger nach einer Lösung suche habe ich nirgends eine passende Lösung gefunden. Ich benutze die Indy 10 Komponenten Build 4559 mit Delhpi 7. Auf Client und Serverseite benutze ich jeweils die Indy IdFtp Komponente (Client: IdFtp, Server: IdFtpServer). Dateien lassen sich übertragen in beide Richtungen . Soweit klappt alles. Nun das Problem: Gibt es in einem Dateinamen einen Umlaut (ä,ö,ü..) oder 'ß' oder ähnlich kann die Datei auf dem Server nicht angelegt oder abgeholt werden, es kommt zu einer Fehlermeldung. Das hat irgendwie mit der fehlenden utf8 unterstützung zu tun. Weiss jemand wie ich dieses Problem umgehen kann? Andere Schreibweisen (ae, oe usw..) sind keine Option. Vielen Dank für Eure Hilfe |
AW: Indy 10 TIdFtp Probleme mit Umlauten
Ich freue mich über jeden Beitrag. Manchmal sieht man den Wald vor lauter Bäumen nicht.
Da hilft manchmal ein neuer Ansatz. Danke |
AW: Indy 10 TIdFtp Probleme mit Umlauten
Du solltest Client und Server getrennt überprüfen.
Zum Beispiel mit dem FTP-Client ![]() Nach diesem Test weisst du, ob das Problem auf der Server-Seite oder bei deinem Client liegt. |
AW: Indy 10 TIdFtp Probleme mit Umlauten
Danke für die Antwort. Ich werde das probieren.
Ich verstehe aber nicht, dass andere nicht das gleiche Problem haben. Es sollte doch bekannt sein ob der Indy FtpServer Umlaute unterstützt oder wie man ihm diese Unterstützung beibringt. Ich bin doch sicher nicht der einzige der diese verbreiteten Komponenten nutzt, oder? Gleiches gilt für den Client. Weiterhin Danke für alle Hilfen. |
AW: Indy 10 TIdFtp Probleme mit Umlauten
Die FTP-Server der breiten Masse sind meist mit einem Webserver (ala Apache) gekoppelt. Und im Web hat sich eingebürgert (auf Grund von heftigen Problemen mit Dateinamen mit Umlauten/Sonderzeichen/Leerzeichen), diese einfach nicht zu verwenden. So geht man einem großen Problem aus dem Weg.
Um jetzt deinen Server und den Clienten zu testen kannst du FileZilla für den Server nehmen und dann noch einen FTP-Server (z.B. bei einem kostenlosen Hoster) suchen und dann damit den Clienten testen. Außerdem wäre es wunderbar hilfreich, wenn du nicht einfach sagen würdest, dass eine Fehlermeldung existiert, sondern auch preis gibst, wie diese lautet. Bernhard |
AW: Indy 10 TIdFtp Probleme mit Umlauten
@rollstuhlfahrer
ja ich weiss, aber ich kann für die Dateinamen nichts. Es sind technische Dokumentationen die von sonstwem erstellt werden und in mein Filestruktur abgelegt werden müssen. Das ganze wird auch nur im Intranet von meinem Client benutzt. Benutzer haben keinen direkten Zugang. Ich habe das bisher mit dem TcpServer gemacht, der hat aber noch ganz andere Probleme. Die Fehlermeldung lautet im prinzip "no such file or directory" weil der dateiname mit "?" statt mit umlauten ankommt also aus "DateiÜberDaß.pdf" wird "Datei?berDa?.pdf" und die existiert nicht auf dem Server. Beim Upload merkt der Server dann gleich, dass der Dateiname nicht gültig ist (ebenfalls ? statt umlaute). Hoffe das reicht als Erklärung, ansonsten kann ich noch mehr zeigen. Gruss |
AW: Indy 10 TIdFtp Probleme mit Umlauten
@sx2008
Code:
Das ist die Fehlermeldung die vom Server ausgelöst wird. Habe FreeCommander als Client eingesetzt.
Exception in DownloadFile(): Cannot create file "H:\Temp\FreeCommander2848\U092509_-_?RMC?_Ch.94609.pdf". Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch
Die Datei U092509_-_?RMC?_Ch.94609.pdf heisst im Original "U092509_-_ÜRMCÄ_Ch.94609.pdf" Die Dateinamen werden schon im "list" falsch übertragen. Die Einstellungen DirFormat(ftpdfUnix) oder PathProcessing(ftpOsDependent) scheinen auch keinerlei Auswirkungen zu haben, egal was ich einstelle. |
AW: Indy 10 TIdFtp Probleme mit Umlauten
Umlaute in Dateinamen können nur übertragen werden wenn der Server und der Client mit UTF-8 Dateinamen umgehen können.
Der Standardzeichensatz ist 7-Bit ASCII oder EBCDIC und dort gibt es keine deutschen Umlaute! Der Client muss den Server über FEAT-Kommando nach seinen Fähigkeiten fragen. Der Server teilt dann dem Client mit, dass es UTF-8 beherrscht. Der Client schickt dann das Kommando OPTS UTF−8 um dem Server mitzuteilen, dass er UTF-8 verwenden möchte. siehe auch: ![]() IdFtpServer (Indy Version 10,nicht die aktuelle Version) sendet das Feature UTF-8 nicht; also liegt das Problem beim Server. |
AW: Indy 10 TIdFtp Probleme mit Umlauten
@shmia
Zitat:
Code:
Also OPTS UTF-8 wird angefragt und der Server meldet OK
==== Connect: 25.01.2011 16:38:14 ====
220 Indy FTP Server ready. USER myuser 331 User name okay, need password. PASS ********* 230 User logged in, proceed. OPTS UTF-8 200 Ok SYST 215 Windows_NT FEAT 211-Extensions supported: EPRT EPSV LIST -l MLSD MLST size*;Type*;Create*;Modify*;Windows.lastaccesstime*;Win32.ea* OPTS MLST;UTF8 REST STREAM SITE ZONE;DIRSTYLE SPSV STAT -l TVFS UTF8 RFC 959 2389 2577 3659 211 End of extentions. PWD 257 "/" is working directory. MODE S 200 Mode set to S. STRU F 200 Structure set to F. TYPE I 200 Type set to I. PASV 227 Entering Passive Mode (127,0,0,1,117,48). LIST 125 Opening ASCII mode data connection for /bin/ls. 125 Opening ASCII mode data connection for /bin/ls. 226 Closing data connection. Weiter unten bei FEAT wird auch UTF-8 angezeigt. Funktioniert aber trotzdem nicht! |
AW: Indy 10 TIdFtp Probleme mit Umlauten
Der Server scheint UTF-8 zu unterstützen, weiss aber scheinbar nichts über die zu verwendende CodePage. Kann das möglich sein?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:57 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz