我有一个场景,其中数据中的一行在内容中有分隔符。
5 |0St"|"ring |field[1]
应该始终传递 - 带引号的字段分隔符
分隔符在哪里 |并且它也出现在其中一列中,如上所示。
我的配置如下:
quoteChar = "
quoteEscapeChar = \\
但是当我尝试解析该行时,它将列拆分为两个单独的列(“0St”和“ring”)并且失败了。
如果如下所示在整个列周围放置引号,则效果很好。
5 |"0St|ring" |field[1]
应该始终传递 - 带引号的字段分隔符
是否有任何设置来指定分隔符转义字符?
我正在使用 univocity 2.5.9
感谢任何帮助
最佳答案
图书馆的作者在这里。我相信我已经在 ticket 中解释了这个问题。你打开了,但让我再试一次:
基本上 不是 CSV 格式的工作原理。
如果您的值中有一个字段分隔符(即您在 0St
和 ring
之间有一个 |
),您的整个值必须是引用,即您必须将您的值写为 "0St|ring"
而不是 0St"|"ring
。
任何 CSV 解析器都会将 0St"|"ring
读入 0St"
,然后尝试将 |
之后的内容作为另一个值进行处理。那里除了将整个值写在引号内之外,您无能为力。
将 0St"|"ring
解析为单个值的唯一方法(我假设您希望得到 0St|ring
作为结果)是编写您自己的解析代码以这种方式处理您的数据。
希望这对您有所帮助。
关于java - 在 univocity csv 解析器中转义定界字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50925643/