C ++:RadStudio中没有BOM的文件

时间:2013-05-29 09:09:30

标签: c++ byte-order-mark

我正在尝试在BOM中编写没有RadStudio XE3的文件。

我正在使用TStreamWriter帮助程序类。问题是每次BOM都会在file的开头写入。TEncoding。我想避免这种情况。我已经尝试过更改UTF7,我尝试了几乎所有选项都没有成功。 Embarcadero文档说如果我用BOM编码{{1}}编写文件将不会被写入文件(再次没有成功)。

我错了还是编译问题?

1 个答案:

答案 0 :(得分:0)

如果与TEncoding一起使用的TStreamWriter定义了BOM,则TStreamWriter会将其写入。没有选项可以禁用该逻辑。

避免BOM的一种方法是从TEncoding派生一个新类,它覆盖虚拟GetPreamble()方法以返回空字节数组,并覆盖其他方法将工作委托给另一个{ {1}}。