0

我正在尝试解析具有单引号作为文本限定符的 CSV 文件。这里的问题是一些带有单引号文本限定符的值本身包含单引号,例如:

'Fri, 24 Feb 2017 17:44:57 +0700','th01ham000tthxs','/','','Writer's Tools Data','7.1.0.0',

我正在努力解析文件,因为在这一行之后,所有剩余的行都被取代了。

我尝试使用 OpenCSV、UnivocityParsers 但没有得到任何运气。如果我将上面的行放在 excel ( Excel Image ) 中并将文本限定符作为单引号提供,它会给出正确的结果,而不会发生任何行位移。

4

2 回答 2

0

尝试根据您的场景配置 univocity-parsers 来处理未转义的引号。'Writer's Tools Data'有一个未转义的报价。从您的输入中,我可以看出您希望将其STOP_AT_CLOSING_QUOTE用作解决这些值的策略。

将此行添加到您的代码中,它应该可以正常工作:

parserSettings.setUnescapedQuoteHandling(UnescapedQuoteHandling.STOP_AT_CLOSING_QUOTE);

希望这可以帮助。

于 2019-01-08T13:46:37.397 回答
0

如果使用 java,JRecord库应该处理文件。

它是如何工作的:如果一个字段以引号开头(例如,')专门查找',''',''''','等(奇数个引号后跟逗号结束-线标记)。如果出现以下情况,这种方法就会失效:

  • 嵌入的引号是字段中的最后一个字符,即 “带引号的字段”,
  • 引号和逗号之间的空格,即'Field', '

这是ReCsvEditor中的行

ReCsvEditor


同样在 ReCsvEditor 中编辑文件时,如果选择Generate >>> Java Code >>> ...它将生成 Java/JRecord Code 来读取文件。

ReCsvEditor 生成

免责声明:我是 JRecord / ReCvEditor 的作者。ReCsvEditor Generate 功能也是新的,需要更多的工作

于 2019-01-03T22:32:32.103 回答