使用c++编写带有BOM (Byte Order Mark)的csv文件

Write csv files with Byte Order Mark (BOM) using c++?

本文关键字:Mark Order 文件 csv Byte c++ BOM 使用      更新时间:2023-10-16

我正在尝试使用c++创建一个带有BOM的UTF8的csv文件。有人能告诉我怎么做吗?

只需将BOM放入字符串中并将其写入文件(使用您正在使用的任何方法,例如streams或classic cstdio):

const char *bom = "xefxbbxbf"; // UTF-8
const char *bom_alt = {0xef, 0xbb, 0xbf, 0}; // the null termination is optional, depending on how you write it later on

那么你只需要确保你实际上写的是正确的UTF-8,而不是ANSI或宽字符串。我推荐UTF8-CPP(在工作项目中已经使用它,并且无需使用一些巨大的库,如Boost)。

如果您正在使用Qt库,您可以使用QTextStream::setGenerateByteOrderMark(bool)来添加BOM。