以下是我程序,但保存后的文件还是ANSI格式的,就是用记事本打开里面还是可以看的字符,原test.txt是看不懂的字符
var
tmpFileName: String;
tmpFile: TextFile;
tmpUTF8Str: UTF8String;
tmpStr: AnsiString;
i: Integer;
begin
tmpFileName := 'D:\Temp\test.txt';
AssignFile(tmpFile, tmpFileName);
try
Rewrite(tmpFile);
for i := 0 to Memo1.Lines.Count - 1 do
begin
tmpStr := Memo1.Lines[i];
tmpUTF8Str := AnsiToUtf8(tmpStr);
Writeln(tmpFile, tmpUTF8Str);
end;
finally
CloseFile(tmpFile);
end;
ShowMessage('OK');
var
tmpFileName: String;
tmpFile: TextFile;
tmpUTF8Str: UTF8String;
tmpStr: AnsiString;
i: Integer;
begin
tmpFileName := 'D:\Temp\test.txt';
AssignFile(tmpFile, tmpFileName);
try
Rewrite(tmpFile);
for i := 0 to Memo1.Lines.Count - 1 do
begin
tmpStr := Memo1.Lines[i];
tmpUTF8Str := AnsiToUtf8(tmpStr);
Writeln(tmpFile, tmpUTF8Str);
end;
finally
CloseFile(tmpFile);
end;
ShowMessage('OK');
procedure TForm1.Button1Click(Sender: TObject); //方法1,API
var
t:pchar;
f:thandle;
w:dword;
begin
t:=pchar(ansitoutf8(memo1.Text));
ShowMessage(t);
f:=createfile('d:\temp\test.txt',GENERIC_WRITE,FILE_SHARE_WRITE ,nil,CREATE_ALWAYS,0,0);
writefile(f,t^,length(t),w,nil);
closehandle(f);
end;procedure TForm1.Button2Click(Sender: TObject); //TStringlist
var
t:tstringlist;
begin
t:=tstringlist.Create;
t.add(ansitoutf8(memo1.Text));
ShowMessage(t.Text);
t.SaveToFile('d:\temp\test.txt');
t.free;
end;
end.