Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Probeleme bei der Darstellung von Umlauten der idFTP.List in Listbox (https://www.delphipraxis.net/174254-probeleme-bei-der-darstellung-von-umlauten-der-idftp-list-listbox.html)

b0urb0nkid 11. Apr 2013 22:40

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:
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;
Die ListBox benutzt den Ansi-Charset.
Der FTP-Server benutzt UTF-8, jedoch funktioniert auch das folgende nicht.
Code:
LBInhalt.Items.Add(UTF8ToAnsi(FTP.DirectoryListing.Items[i].FileName));
Ich kann allerdings, wenn ich in das Edit-Feld über der ListBox das Verzeichniss mit Umlaut eintrage ganz normal in das Verzeichnis wechseln.
Code:
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;
Hoffe ihr könnt mir helfen

LG Hendrik

sx2008 12. Apr 2013 01:54

AW: Probeleme bei der Darstellung von Umlauten der idFTP.List in Listbox
 
Die Frage ist, ob der Server auch den RFC2640 beachtet.
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.

Bernhard Geyer 12. Apr 2013 06:38

AW: Probeleme bei der Darstellung von Umlauten der idFTP.List in Listbox
 
Zitat:

Zitat von sx2008 (Beitrag 1211207)
Das letzte Mal als ich in den Sourcecode geschaut habe, konnte Indy mit UTF8 noch nichts anfangen.

Müsste schon. Aber evtl. muss man sich die letzte Version holen. Die mitgelieferten Versionen haben hier oft Probleme.

Sir Rufo 12. Apr 2013 06:57

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 Delphi-Referenz durchsuchenUTF8ToString versuchen ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:26 Uhr.

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