2

我有一个场景,其中数据中的一行在内容中有分隔符。

5 |0St"|"ring |field[1]

应该总是通过 - 带引号的字段分隔符

分隔符在哪里 | 并且它也存在于如上所示的列之一中。

我的配置如下:

quoteChar = "
quoteEscapeChar = \\

但是当我尝试解析该行时,它会将列拆分为两个单独的列(“0St”和“ring”)并且失败。

如果将整个列周围的 put 引用如下所示,则可以正常工作。

5 |"0St|ring" |field[1]

应该总是通过 - 带引号的字段分隔符

是否有任何设置来指定分隔符转义字符?

我正在使用 univocity 2.5.9

任何帮助表示赞赏

4

1 回答 1

1

图书馆的作者在这里。我相信我已经在您打开的中解释了问题,但让我再试一次:

基本上这不是CSV 格式的工作方式。

如果你的值中有一个字段分隔符(即你有一个|between0String),你的整个值必须被引用,即你必须将你的值写成"0St|ring"而不是0St"|"ring

任何 CSV 解析器都会读0St"|"ring0St",然后尝试将之后的内容|作为另一个值处理。除了将整个值写在引号中之外,您无能为力。

0St"|"ring将其解析为单个值的唯一方法(我假设您希望得到0St|ring结果)是编写您自己的解析代码来以这种方式处理您的数据。

希望这可以帮助。

于 2018-06-20T14:13:31.560 回答