网上找了好多,都是错的。
什么TStrings,Memo,S := #$EF#$BB#$BF;
存出来都是错的。16进制一看都不对。
还是用流靠谱。
function LoadUTF8File(FileName: string): string;
var
SS: TStringStream;
begin
SS := TStringStream.Create('', TEncoding.UTF8);
SS.LoadFromFile(FileName);
Result := SS.DataString;
end;
procedure SaveUTF8File(Content:string;FileName: string);
var
SS: TStringStream;
begin
SS := TStringStream.Create('', TEncoding.UTF8);
SS.WriteString(Content);
SS.SaveToFile(FileName);
SS.Free;
end;