Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#11

AW: Unicode String in FileStream speichern/auslesen

  Alt 12. Feb 2011, 17:40
Das kommt auf dich an.

Wie gesagt, es hat beides seine Vorteile und Nachteile und du kannst mit Beindem dein Unicode speichern.

Ob nun als UTF8 oder Unicode gepseichert ist also dir überlassen.
> UTF8String oder UnicodeString (notfalls WideString)

Wovon ich aber abrate, ist das Speichern von diesem dynamischem Delphi-Referenz durchsuchenString.
Für eine kurzlebige Cache ist es voll OK und vermutlich Idealer, aber für langlebigere Daten vollkommen ungeeignet, da sich der String schnell mal ändern kann, wie man an der Ansi/Unicode-Umstellung gesehn hat. Und dann sind die Speicher-/Auslesefunktionen nicht mehr kompatibel zum gewählten Dateiformat.

Ja, auf UCS4 können wir, so wie ich BorCodaero kenne, noch shr viele Jahrzehnte warten können (OK, auch das OS wird es so schnell noch nicht standardmäßig anbieten), aber es könnte irgendwann mal kommen ... existieren tut es ja schon.
Und das Integerdebakel, noch aus der 16/32-Bit-Umstellung bekannt, kommt ja auch demnächst auch nochmal, mit den 64 Bit ... also niemals dynamische Typen in externen Definitionen verwenden.


Dann kommt es noch darauf an, was du mit deiner Datenklasse machst ... wie gesagt, wenn du das UTF8 dort nicht zwingenst benötigst, dann würde ich String/UnicodeString empfehlen.

z.B. Edit1.Text := Address.EMAIL; wird bei einem UTF8String als Feld/Propery intern implizit von Delphi als Edit1.Text := UTF8Encode(Address.EMAIL); dargestellt.
$2B or not $2B
  Mit Zitat antworten Zitat