![]() |
Delphi-Version: XE2
Probeleme bei der Darstellung von Umlauten der idFTP.List in Listbox
Liste der Anhänge anzeigen (Anzahl: 2)
Moin Moin,
Ich arbeite gerade an einem Schulprojekt, einem kleinem FTP-Dateimanager, dabei will ich die Ordner/Dateien in einer ListBox darstellen. Das funktioniert auch ganz gut (siehe Bild1) nur wenn es um Umlaute geht kann ich das nicht Anzeigen lassen. Hier mein Code zum Abfragen der FTP.List:
Code:
Die ListBox benutzt den Ansi-Charset.
procedure TFDateiManager.List;
var i : Integer; begin LBInhalt.Clear; FTP.List(); IFTPLaenge := FTP.DirectoryListing.Count; for i := 0 to IFTPLaenge - 1 do LBInhalt.Items.Add(FTP.DirectoryListing.Items[i].FileName); end; Der FTP-Server benutzt UTF-8, jedoch funktioniert auch das folgende nicht.
Code:
Ich kann allerdings, wenn ich in das Edit-Feld über der ListBox das Verzeichniss mit Umlaut eintrage ganz normal in das Verzeichnis wechseln.
LBInhalt.Items.Add(UTF8ToAnsi(FTP.DirectoryListing.Items[i].FileName));
Code:
Hoffe ihr könnt mir helfen
procedure TFDateiManager.EPathKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); begin if Key = 13 then //wenn "Enter" gedrückt wird: begin FTP.ChangeDir(EPath.Text); EPath.Text := FTP.RetrieveCurrentDir; List; end; end; LG Hendrik |
AW: Probeleme bei der Darstellung von Umlauten der idFTP.List in Listbox
Die Frage ist, ob der Server auch den
![]() Dort ist festgelegt, dass der Server auf das FEAT-Kommando (unter anderem) mit "UTF8" antworten soll. Für den Client ist dies der Hinweis, das Dateinamen auch UTF8-kodiert übermittelt werden können. Und dann muss auch der Client (Indy) mitspielen. Das letzte Mal als ich in den Sourcecode geschaut habe, konnte Indy mit UTF8 noch nichts anfangen. |
AW: Probeleme bei der Darstellung von Umlauten der idFTP.List in Listbox
Zitat:
|
AW: Probeleme bei der Darstellung von Umlauten der idFTP.List in Listbox
Ich kann mich ja auch täuschen, aber wenn wirklich XE2 im Einsatz ist, dann verarbeitet die ListBox Unicode-Strings und keine Ansi-Strings, somit müsste die Umwandlung von UTF8 nach Unicode (=>UTF16LE) erfolgen.
Somit würde ich es mal mit ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:31 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