【发布时间】:2014-03-26 23:32:09
【问题描述】:
这可能与C CSV API for unicode 或How 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 字符出现时的细微差别。好吧,我可以阅读文档以完全理解所有这些细节,但我想看看是否存在可以重复使用的先前作品。懒惰是程序员的美德。