【问题标题】:Write csv files with Byte Order Mark (BOM) using c++?使用 C++ 编写带有字节顺序标记 (BOM) 的 csv 文件?
【发布时间】:2011-12-31 04:52:32
【问题描述】:

我正在尝试使用 c++ 创建一个带有 UTF8 和 BOM 的 csv 文件。任何人都可以帮助我,如何做到这一点?

【问题讨论】:

    标签: c++ file-handling byte-order-mark


    【解决方案1】:

    如果您使用的是 Qt 库,则可以使用 QTextStream::setGenerateByteOrderMark(bool) 添加 BOM。

    【讨论】:

      【解决方案2】:

      只需将 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之类的大型库)。

      【讨论】:

        猜你喜欢
        • 2011-01-27
        • 2011-10-30
        • 1970-01-01
        • 2011-04-21
        • 2013-06-23
        • 1970-01-01
        • 2012-05-22
        • 2017-01-28
        • 1970-01-01
        相关资源
        最近更新 更多