Einzelnen Beitrag anzeigen

ioster

Registriert seit: 15. Aug 2008
84 Beiträge
 
Delphi 10.3 Rio
 
#8

AW: WideStringlist in UTF-8 mit Delphi 2007 speichern

  Alt 31. Aug 2023, 09:21
In deinem Code speicherst du aber UTF-16 anstatt UTF-8. Ist das denn so gewollt?

ABER der Konverter streikt, da die neuen Textdateien in UTF-16-LE und nicht mehr in UTF-8 codiert werden.
Mit dieser kleinen Routine kannst du auch UTF-8 schreiben:
Delphi-Quellcode:
uses
  WideStrings, WideStrUtils;

procedure SaveToUTF8(const Filename: string; Content: TWideStrings);
var
  Stream : TFileStream;
  Zeile : UTF8String;
begin
  Zeile := UTF8Encode(Content.Text);
  Stream := TFileStream.Create(Filename, fmCreate);
  try
    Stream.WriteBuffer(sUTF8BOMString[1], Length(sUTF8BOMString));
    Stream.WriteBuffer(Zeile[1], Length(Zeile));
  finally
    Stream.Free;
  end;
end;
Die UTF8-Routine funktioniert. Vielen lieben Dank!!!

Was müsste ich denn jetzt ändern, um UTF16 ausgeben zu können. Die Konvertierung entfällt dann ja. Grundsätzlich dürfte sich das Verfahren ja nicht unterscheiden, oder?

Viele Grüße
Ingo
  Mit Zitat antworten Zitat