Einzelnen Beitrag anzeigen

ioster

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

AW: WideStringlist in UTF-8 mit Delphi 2007 speichern

  Alt 31. Aug 2023, 10:00
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;
Der Konverterhersteller schrieb mir, ich könne auch UTF-16 verwenden, wenn ich den fehlenden BOM $FFFE mitgeben würde. Ich werde die Funktion mit UTF-8 gleich einmal ausprobieren.

Viele Grüße
Ingo
  Mit Zitat antworten Zitat