Wie geht: UTF-8 Datei in SynMemo laden und speichern?

Rund um die LCL und andere Komponenten
Antworten
kirchfritz
Beiträge: 218
Registriert: Mo 3. Jan 2011, 13:34
OS, Lazarus, FPC: Win11 (L 3.0 FPC 3.2.2)
CPU-Target: 64Bit
Wohnort: Nürnberg

Wie geht: UTF-8 Datei in SynMemo laden und speichern?

Beitrag von kirchfritz »

Hallo,

ich stehe gerade auf dem Schlauch und brauche Eure Hilfe.
Ich habe eine XML-Datei im UTF-8 Format und will diese Datei in eine SynMemo-Komponente laden, da drin bearbeiten und dann wieder als UTF-8 Datei abspeichern.
Wenn ich aber mit

Code: Alles auswählen

 
procedure TForm1.OpenFileClick(Sender: TObject);
begin
  if OpenDialog1.Execute then
  begin
    SynMemo1.Lines.LoadFromFile(OpenDialog1.FileName);
  end;
end;  
 
die XML Datei ins SynMemo lade, stört mich als erstes der UTF-8 BOM am Dateianfang. Den will ich auf keinen Fall sehen oder explizit selbst schreiben müssen (beim Speichern).
Zweitens weiß ich nicht, ob dies auch die korrekte Weise ist, eine UTF-8 Datei zu laden.
Wer kann mir da weiterhelfen?

Viele Grüße
Fritz

Benutzeravatar
theo
Beiträge: 10873
Registriert: Mo 11. Sep 2006, 19:01

Re: Wie geht: UTF-8 Datei in SynMemo laden und speichern?

Beitrag von theo »

Ist an sich schon richtig, nur ist da halt der BOM.
Ich hatte hier mal was gemacht:
http://wiki.freepascal.org/Theodp
Vllt. hilft dir dort TCharEncStream aus charencstreams.pas.
Das kümmert sich um den BOM.

Antworten