Fab*_*lva 5 delphi utf-8 tstringlist
当我将对象从TStringList类文件内容保存到文件时,该文件默认使用UTF-8保存,但UTF-8保存为BOM.
我的代码是:
myFile := TStringList.Create;
try
myFile.Text := myData;
myFile.saveToFile('myfile.dat', TEncoding.UTF8)
finally
FreeAndNil(myFile);
end;
Run Code Online (Sandbox Code Playgroud)
在示例中,文件"myfile.dat"显示为"UTF-8 BOM"编码.
如何在没有BOM的情况下保存文件?
And*_*y_D 10
您可以通过创建自己的编码类来实现这一目标,该编码类来自TUTF8Encoding并覆盖该GetPreamble方法: -
type
TUTF8EncodingNoBOM = class(TUTF8Encoding)
public
function GetPreamble: TBytes; override;
end;
function TUTF8EncodingNoBOM.GetPreamble: TBytes;
begin
SetLength(Result, 0);
end;
Run Code Online (Sandbox Code Playgroud)
Sir*_*ufo 10
您只需将属性设置TStrings.WriteBOM为false.
文档告诉我们这个:
将导致SaveToStream或SaveToFile写入BOM.
将WriteBOM设置为True以使SaveToStream将BOM(字节顺序标记)写入流并使SaveToFile将BOM写入文件.
| 归档时间: |
|
| 查看次数: |
4903 次 |
| 最近记录: |