3

我正在寻找正确处理 Unicode 数据的 CSV(逗号分隔值)解析器的 Java 实现,例如带有中文文本的 UTF-8 CSV 文件。我想这样的解析器应该在迭代、比较等时在内部使用与代码点相关的方法。Apache 2 许可证或类似的许可证效果最好。

4

3 回答 3

4

我不相信重新发明轮子。所以我不想编写自己的解析器并经历与其他人相同的头痛。

我个人喜欢Ostermiller的 CSV Parser 。如果有兴趣,他们也有一个 Maven 存储库。


您还可以查看OpenCSV。已经有一个关于解析 unicode的 Stack Overflow问题。

于 2009-12-23T18:40:47.190 回答
0

你试过Commons CSV吗?

于 2009-12-23T19:58:18.610 回答
-1

自己写很容易。使用 FileInputStream 和使用 UTF-8 的 InputStreamReader 打开文件。将其包装在 BufferedReader 中,您可以使用 readLine() 对其进行迭代。将每一行作为字符串获取。使用正则表达式将其拆分为字段。

唯一棘手的部分是构造正则表达式,因此它们不会将引号内的逗号视为字段分隔符。

上面的方法效率有点低,但对于大多数应用程序来说已经足够快了。如果您有真正的性能要求,那么您将需要一些可以遍历字符的东西。几年前我写了一个,它使用了一个工作正常的状态机。

于 2009-12-23T18:32:44.343 回答