读书人

怎么将一个asni编码的txt文件通过程序

发布时间: 2012-02-17 17:50:42 作者: rapoo

如何将一个asni编码的txt文件通过程序变成utf-8编码
我从Oracle数据库导出txt文件内容的编码默认是asni,我想使它变成utf-8编码,请问如何写代码啊?
如:
procedure TForm1.Button1Click(Sender: TObject);
var S:string;
begin
with TMemoryStream.Create do try
S := #$EF#$BB#$BF;
Write(S[1], Length(S));
S := AnsiToUtf8('我来试试编码转换');
Write(S[1], Length(S));
Position := 0;
SaveToFile('c:\test.txt');
finally
free;
end;
end;
end.

这只能转化一条字符串,那么整篇txt该如何转化呢?谢谢

[解决办法]
用TStringList读入整个文件,(理论是不超过2G都可以),然后,用AnsiToUtf8转
var
t:TStringList;
s:string;
begin
t:=TStringList.Create;
t.LoadFromFile(你的文件);
s:=AnsiToUtf8(t.txt);
t.clear;
t.Add(s);
t.savetofile(新文件);
t.free;
end;


[解决办法]
procedure TFrmIEPlugins.Button2Click(Sender: TObject);
var
stm: TStream;
txt: string;
begin
stm := TFileStream.Create('d:\abc.txt', fmOpenReadWrite);
try
SetLength(txt, stm.Size);
stm.Position := 0;
stm.Read(txt[1], stm.Size);
txt := AnsiToUtf8(txt);
stm.Position := 0;
stm.Write(txt[1], Length(txt));
finally
stm.Free;
end;
end;

读书人网 >.NET

热点推荐