Zitat von
Bernhard Geyer:
Zitat von
JamesTKirk:
Ich glaub, dass da jeder eine andere Ansicht darüber hat, wer hier jetzt was falsch gemacht hat
Egal ob man nun alle mit
Unicode nach UTF16 (Delphi) nimmt oder nach UTF8 (Lazarus) sollte man auf jedenfall dafür sorgen das alle Methdoen das verwenden. Und dein obiges Beispiel zeit das hier Lazarus nicht konsequent ist. Wenn schon UTF8 dann überall. Delphi mit seiner Implementierung (seit D2) kann z.B über einen eigenen Wrapper für TOpendialog einen Widestring bekommen und diese dann der TFileStream.Create-Methode übergeben und die Compilermagic sorgt dafür das Sonderzeichne die in der aktuellen Codepage vorhanden sind auch korregt zur verfügung stehen.
Das Problem dieser Inkonsistenz liegt an der zweigeteilten Natur von Lazarus und Free Pascal. Während Lazarus, um die Mehrsprachigkeit bis hin zu Russland, China und Co zu ermöglichen, bereits das komplette Interface auf UTF-8 umgestellt hat, wurde das in
RTL und
FCL von Free Pascal eben nicht gemacht (deswegen sind auch TFileStream und ExtractFileDir nicht UTF-8-fähig, während TPortableNetworkGraphic Teil der LCL und damit UTF-8-fähig ist). Es wird allerdings vom FPC Team daran gearbeitet dieses Manko mit einem Schwung Compilermagic zu beseitigen.
Gruß,
Sven