java - 在 univocity csv 解析器中转义定界字符

标签 java csv univocity

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

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

应该始终传递 - 带引号的字段分隔符

分隔符在哪里 |并且它也出现在其中一列中,如上所示。

我的配置如下:

quoteChar = "
quoteEscapeChar = \\

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

如果如下所示在整个列周围放置引号,则效果很好。

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

应该始终传递 - 带引号的字段分隔符

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

我正在使用 univocity 2.5.9

感谢任何帮助

最佳答案

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

基本上 不是 CSV 格式的工作原理。

如果您的值中有一个字段分隔符(即您在 0String 之间有一个 |),您的整个值必须是引用,即您必须将您的值写为 "0St|ring" 而不是 0St"|"ring

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

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

希望这对您有所帮助。

关于java - 在 univocity csv 解析器中转义定界字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50925643/

相关文章:

java - 最喜欢的开源 Google App Engine 应用(Java 或 Python)

java - 为什么我不能将枚举用于 switch-case 语句?

Java Android 插件异常

python - BigQuery : Load from CSV, 跳过列

java - 解析 CSV 文件,但除了分隔数据外不进行格式化

java - Univocity - 如何使用迭代器样式每行返回一个 bean?

尝试更改变量的 Java 方法不起作用

java - 将 CSV 文件列中的相似项目分组为主键

javascript - 一页上有多个图表,D3.js 中出现比例错误

java - 使用 Univocity 在输出 CSV 中设置自定义 header