Java中的Unicode识别CSV解析器

时间:2009-12-23 18:12:45

标签: java unicode csv utf-8 cjk

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

3 个答案:

答案 0 :(得分:4)

我不相信重新发明轮子。所以我不想写自己的解析器,并且经历了别人做过的同样的麻烦。

我个人喜欢来自Ostermiller的CSV解析器。如果感兴趣,他们也有一个Maven资源库。


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

答案 1 :(得分:0)

您是否尝试过Commons CSV

答案 2 :(得分:-1)

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

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

上述方法效率低下,但对大多数应用来说都足够快。如果您有真正的性能要求,那么您将需要迭代字符的东西。几年前我写了一个使用状态机的工作正常。