【问题标题】:Unicode aware CSV parser in C++ [closed]C ++中的Unicode感知CSV解析器[关闭]
【发布时间】:2014-03-26 23:32:09
【问题描述】:

这可能与C CSV API for unicodeHow can I read and parse CSV files in C++? 重复,但不完全一致。第一个讨论了一个 C 库,它有可能工作但需要一些代码修改。第二个没有提到太多关于 unicode 的支持。我宁愿开一个新问题,也不愿污染现有的问题。

由于我不是 i18n 和 unicode 编码方面的专家,我只是想知道是否有这样的 C++ 开箱即用库?

目前,我最大的努力是在 C++ 中调用 Python 的 csv 解析器,这非常慢。

【问题讨论】:

  • 你可能会在 github 上找到一些“现成的”...或者你可以在 30 分钟内编写自己的。
  • C++ 语言将 Unicode 视为体味的一个坏例子。没有什么是不可修复的,使用 ICU 库是样板文件。通常的挂断是希望尽快停止使用 ICU,只需使用它来转换文件/文本并尽快回到 std::string 或 const char* 的友好罗杰斯先生附近。大错。无论如何,使用 C++ 进行文本转换没有任何意义,Python 会尽快完成。文件转换是 I/O 绑定的,它不需要快速的语言。
  • @HansPassant 好吧,我不能选择其他语言。我正在为 sqlite3 编写一个 CSV 加载器,它必须被构建到一个 .so 文件中。 sqlite3 自带的简单 CSV 加载器不能正确支持 i18n,所以我必须自己实现一个。
  • 您可以选择ICU。你这样做了吗?你在哪里卡住了?
  • @HansPassant,我卡住的地方是,我不想通过阅读一些无聊的 RFC 标准来深入了解 CSV 文件格式的细节,也不想处理各种方言(在Python 的 csv 包),也不是 unicode 字符出现时的细微差别。好吧,我可以阅读文档以完全理解所有这些细节,但我想看看是否存在可以重复使用的先前作品。懒惰是程序员的美德。

标签: c++ csv


【解决方案1】:

从 CSV 的角度来看,它实际上根本不重要。因为,所有传统的 CSV 控制字符都在较低的 ASCII 区域中,并且对于所有 ASCII 和 Unicode 变体都是相同的。您应该问,“我如何以 Unicode 字符流的形式读取或写入文件内容”in your particular programming language。然后,您可以将该字符流解释为您想要的任何格式,包括 CSV。

【讨论】:

    猜你喜欢
    • 2010-12-29
    • 1970-01-01
    • 2010-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多