我正在尝试使用c ++创建一个带有带BOM的UTF8的csv文件。任何人都可以帮助我,怎么做?
答案 0 :(得分:3)
只需将BOM放入一个字符串并将其写入您的文件(使用您正在使用的任何方法,例如stream或classic cstdio):
const char *bom = "\xef\xbb\xbf"; // 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这样的大型库)。
答案 1 :(得分:1)
如果您使用的是Qt库,则可以使用QTextStream::setGenerateByteOrderMark(bool)
添加BOM。