首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

delphi保文本文件怎么选择编码UTF-8格式

2013-09-06 
delphi保文本文件如何选择编码UTF-8格式?我通过memo1.SaveToFile(文件名),但是文件格式需要保存“编码UTF-8

delphi保文本文件如何选择编码UTF-8格式?
我通过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
[解决办法]
能用啊,你的memo1.text是不是已经就是经过utf8编码的内容?
我测试下面是可行的:
SaveUTF8File('好样的abc', 'd:\a.txt')
[解决办法]
如果你用的是delphi 2010以后的版本,保存时直接Memo1.Lines.SaveToFile('xxx', TEncoding.UTF8)就搞定
[解决办法]
换几种不同的软件打开这个文件,看究竟是不是乱码吧。
[解决办法]
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就简单了.直接可以存

热点排行