Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Indy 10 TIdFtp Probleme mit Umlauten (https://www.delphipraxis.net/157760-indy-10-tidftp-probleme-mit-umlauten.html)

Softchaos67 24. Jan 2011 09:43


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

Softchaos67 25. Jan 2011 07:16

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

sx2008 25. Jan 2011 08:27

AW: Indy 10 TIdFtp Probleme mit Umlauten
 
Du solltest Client und Server getrennt überprüfen.
Zum Beispiel mit dem FTP-Client Filezilla ausprobieren, ob der Server prinzipiell Umlaute im Dateinamen zulässt.
Nach diesem Test weisst du, ob das Problem auf der Server-Seite oder bei deinem Client liegt.

Softchaos67 25. Jan 2011 09:12

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.

rollstuhlfahrer 25. Jan 2011 12:24

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

Softchaos67 25. Jan 2011 12:31

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

Softchaos67 25. Jan 2011 13:13

AW: Indy 10 TIdFtp Probleme mit Umlauten
 
@sx2008

Code:
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
Das ist die Fehlermeldung die vom Server ausgelöst wird. Habe FreeCommander als Client eingesetzt.
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.

shmia 25. Jan 2011 15:20

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: http://newsgroups.derkeiler.com/pdf/...6/msg00073.pdf

IdFtpServer (Indy Version 10,nicht die aktuelle Version) sendet das Feature UTF-8 nicht;
also liegt das Problem beim Server.

Softchaos67 25. Jan 2011 15:43

AW: Indy 10 TIdFtp Probleme mit Umlauten
 
@shmia
Zitat:

Zitat von shmia (Beitrag 1077216)
IdFtpServer (Indy Version 10,nicht die aktuelle Version) sendet das Feature UTF-8 nicht;
also liegt das Problem beim Server.

Hier mal ein Auszug, was der Server so beim Connect alles schickt:
Code:
==== 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.
Also OPTS UTF-8 wird angefragt und der Server meldet OK
Weiter unten bei FEAT wird auch UTF-8 angezeigt.
Funktioniert aber trotzdem nicht!

Softchaos67 26. Jan 2011 16:31

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 23:28 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz