![]() |
TStrings Encodierung
Hallo an alle,
ich versuche schon seit mehren Tagen herauszufinden wie eine TStringList unter Lazarus codiert ist, also ob Unicode oder Ansi. Unter Delphi kann man ja seit ein paar Versionen die Codierung mittels TEncoding selbst definieren. Gibt's da auch ne Alternative für Freepascal? HG hansklok |
AW: TStrings Encodierung
Gehört die TStringList dort zur FreePascal-CL oder zu Lazarus?
FreePascal soll ja noch mit ANSI arbeiten. Nja, aber du jast ja die Quellcodes, also schau doch einfach mal nach was wie gemacht wird? |
AW: TStrings Encodierung
Zitat:
Aber um deine Frage dennoch zu beantworten: TStrings arbeitet auf Ansi Strings, du musst also UTF8ToAnsi und AnsiToUTF8 verwenden, um Strings aus der GUI und wieder zurück zu transferieren. Gruß, Sven |
AW: TStrings Encodierung
@ JamesTKirk: danke...sehr ausführlich. und wenn ich die stringlist dann in ner Datei Speicher, dann ist sie auch so formatiert? schade, ich hoffe, dass die lazarus/freepascal-entwickler schnell TEncoding a la Embarcadero nachrüsten!
|
AW: TStrings Encodierung
Hat Lazarus/FPS auch eine aktomatische Umkodierung?
Also wenn man z.B. einen UTF8String an einen AnsiString übergibt. Wenn nicht, dann übergib das UTF8 einfach an die AnsiStringListe und es gibt keine Probleme (außer dem fehlenden BOM in der Datei) UTF-8 ist ja gerade dafür entwikelt wurden, um in AnsiStrings gespeichert werden zu können. Delphi seit D2009 wandelt leider UTF-8 und Ansi untereinander um (wenn die Strings entsprechende Codierungsinfos enthalten, was sie meistens tun). |
AW: TStrings Encodierung
Zitat:
Zitat:
![]() Gruß, Sven |
AW: TStrings Encodierung
Danke an himitsu und JamesTKirk!
Zitat:
Ich bin ja schon froh, dass ich für FP ne Lösung gefunden habe, damit ich nicht jedes mal ne neue typisierte Objektliste erstellen muss. Einfach ne neue Klasse erstellen, die hiervon abgeleitet ist:
Delphi-Quellcode:
Dann wird alles automatisch angepasst.
Specialize TFPGObjectList<TSurname>;
VG hansklok |
AW: TStrings Encodierung
Zitat:
Delphi-Quellcode:
const
UTF8BOM: String = #$EF#$BB#$BF; var s: TStrings; begin ... // vor dem speichern (einmal eben) s.Text := UTF8BOM + s.Text; ... end; Zitat:
![]() Gruß, Sven |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:30 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