我通过memo1.SaveToFile(文件名),但是文件格式需要保存“编码UTF-8格式”。
从网上找一过程procedure SaveUTF8File(AContent:string;AFileName: string);
var ffileStream:TFileStream;
        futf8Bytes: string;
       S: string;
begin
       ffileStream:=TFileStream.Create(AFileName,fmCreate);
       futf8Bytes:= UTF8Encode(AContent);
       S:=#$EF#$BB#$BF;
       ffileStream.Write(S[1],Length(S));
       ffileStream.Write(futf8Bytes[1],Length(futf8Bytes));
       ffileStream.Free;
end;我写的执行过程。
SaveUTF8File(Memo1.Text,filenme);
但是将文件打开发现是乱码。
请求高手,delphi保文本文件如何选择编码UTF-8格式。
UTF-8

解决方案 »

  1.   

    能用啊,你的memo1.text是不是已经就是经过utf8编码的内容?
    我测试下面是可行的:
    SaveUTF8File('好样的abc', 'd:\a.txt')
      

  2.   

    如果你用的是delphi 2010以后的版本,保存时直接Memo1.Lines.SaveToFile('xxx', TEncoding.UTF8)就搞定
      

  3.   

    procedure SaveUTF8File(AContent: WideString; AFileName: string);
    var
      ffileStream: TFileStream;
      futf8Bytes: AnsiString;
      S: AnsiString;begin
      ffileStream := TFileStream.Create(AFileName, fmCreate);  futf8Bytes := UTF8Encode(AContent);
      S := #$EF#$BB#$BF;
      ffileStream.Write(S[1], Length(S));
      ffileStream.Write(futf8Bytes[1], Length(futf8Bytes));
      ffileStream.Free;
    end;
    没问题,高低版本通用.
    如果楼主是高版本Delphi就简单了.直接可以存
      

  4.   

    Memo1.Lines.SaveToFile('d:\tt.txt', TEncoding.UTF8)可行。简单明了。cxmemo也可以使用。