【发布时间】:2011-12-31 04:52:32
【问题描述】:
我正在尝试使用 c++ 创建一个带有 UTF8 和 BOM 的 csv 文件。任何人都可以帮助我,如何做到这一点?
【问题讨论】:
标签: c++ file-handling byte-order-mark
我正在尝试使用 c++ 创建一个带有 UTF8 和 BOM 的 csv 文件。任何人都可以帮助我,如何做到这一点?
【问题讨论】:
标签: c++ file-handling byte-order-mark
如果您使用的是 Qt 库,则可以使用 QTextStream::setGenerateByteOrderMark(bool) 添加 BOM。
【讨论】:
只需将 BOM 放入一个字符串并将其写入您的文件(使用您使用的任何方法,例如流或经典 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之类的大型库)。
【讨论】: