![]() |
Umlaute
Hallo zusammen,
wie kann ich folgendes Problem in Lazarus umgehen: RenameFile(quelle,ziel) funktioniert NICHT mit Umlauten (* FileExists() funktioniert mit Umlauten DirectoryExists() funktioniert mit Umlauten DeleteFile() funktioniert mit Umlauten ForceDirectory() funktioniert mit Umlauten *) sobald in quelle oder ziel entweder im Pfad oder im Dateiname ein Umlaut (äöü) vorhanden ist (wo auch immer) wird nicht mehr umbenannt. |
Re: Umlaute
Sind Bugs in der Lazarus-VCL die (denke ich) größtenteils der Entscheidung geschultet sind den nativen Unicode-Stringtyp als UTF8 zu implementieren.
|
Re: Umlaute
Die Lazarus-VCL/RTL ist vorwiegend Unicode und teils UTF-8 und die FPC-RTL ist wohl mehr UTF-8 ... da wohl stimmen manchmal die Umwandlung nicht ganz
und du mußt auch noch aufpassen wann du welche Kodierung verwenden mußt. |
Re: Umlaute
und wie pass ich da am besten auf?
|
Re: Umlaute
Zitat:
WideString, UTF8String, AnsiString/String, ... |
Re: Umlaute
da kann ich nicht viel aufpassen.
ich verwende Lazarus zur Erstellung einer dll (64bit) die als UDF in Firebird verwendet wird. da krieg ich die Zeichenfolgen (nur) als PChar. Und mit PChar gehts rename mit Umlauten nicht. (string hab ich auch ausprobiert (ausserhalb der UDF) geht aber auch nicht) |
Re: Umlaute
Wenn nur PChar und String zu Auswahl stehen, dann kannst du es nur mal UTF-8-kodiert versuchen ... wenn dieses auch nicht geht, dann geht es einfach nicht. :stupid:
|
Re: Umlaute
Es gibt auch noch die Funtionen:
FileExistsUTF8 DirectoryExistsUTF8 DeleteFileUTF8 RenameFileUTF8 dann klappt's auch mit den Umlauten. |
Re: Umlaute
Zitat:
Theoretisch hätte folgender Aufruf zum Ziel führen können:
Delphi-Quellcode:
Ein entsprechender Wikiartikel bei Free Pascal/Lazarus findet sich übrigens
RenameFile(UTF8ToAnsi(quelle), UTF8ToAnsi(ziel));
![]() Gruß, Sven |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:33 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