【问题标题】:Is a back slash followed by a double quote valid as per CSV spec?根据 CSV 规范,反斜杠后跟双引号是否有效?
【发布时间】:2019-03-06 16:28:12
【问题描述】:

我正在尝试使用 openCSV CSVReader 解析 CSV 文件,我在文件中有一些这样的记录...

"npg6851",,"Wonderful reminder\","This is perfect, I always wanted", ,"5","Nancy88","published"

正如this answer 所指出的,该序列 \" 被解释为文字的非封闭引号,并且解析器尝试读取之后的所有内容都是一个值(关于任何逗号分隔符)。

根据 CSV 规范,这是否有效?

【问题讨论】:

  • 没有 CSV 规范;这是一个疯狂的纠结。这是 CSV 面临的最大挑战之一。各种 CSV 解析器都有关于引用的配置选项。
  • @chrylis 实际上有一个:tools.ietf.org/html/rfc4180 从 2005 年开始,像 libreoffice 这样的流行程序遵循 RFC,通过这样做,它们甚至支持 csv 在值中包含换行符

标签: java csv opencsv


【解决方案1】:

根据CSV RFC 看来,在引用的 CSV 字段中使用反斜杠没有问题,因此它是有效的。

这是有道理的,因为这个问题严格基于 Java(以及任何其他使用 \ 作为其转义字符的编程语言)。然而,解决这个问题似乎有一个非常困难的解决方案。

【讨论】:

  • 大多数人在制作解析器时没有阅读 CSV 规范,从而导致像 OP 所说的各种问题
  • 这与语言的内部字符串转义无关,除非问题是关于读取为 CSV 的内联常量字符串。
猜你喜欢
  • 2015-08-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-10
  • 2019-12-05
  • 2018-02-13
  • 2020-12-04
  • 1970-01-01
相关资源
最近更新 更多