如何将备忘录或 RichEdit 另存为 UTF 8 文本文件



我正在使用Delphi 7,我编写了一个程序,可以从用户那里获取一些信息,将来自多个编辑框和备忘录以及其他输入组件的信息组合在一个备忘录中。如何将此备忘录另存为 UTF 8 文本文件?我从上一个程序的用户那里收到了一些文件,但没有解决utf问题,现在,当我打开输出文件时,我看到????(如你所知!而不是不同的语言字符,这些是不可恢复的,是吗?

像这样:

const
  UTF8BOM: array[0..2] of Byte = ($EF, $BB, $BF);
var
  UTF8Str: UTF8String;
  FS: TFileStream;
begin
  UTF8Str := UTF8Encode(Memo1.Text);
  FS := TFileStream.Create('C:path tofile.txt', fmCreate);
  try
    FS.WriteBuffer(UTF8BOM[0], SizeOf(UTF8BOM));
    FS.WriteBuffer(PAnsiChar(UTF8Str)^, Length(UTF8Str));
  finally
    FS.Free;
  end;
end;

最新更新