【问题标题】:CSV standard regarding end of a row关于行尾的 CSV 标准
【发布时间】:2017-05-14 02:20:59
【问题描述】:

我正在编写一个 CSV 解析器,我希望它符合 this 标准。它指出:

  1. 每条记录位于单独的行中,由换行符 (CRLF) 分隔

我应该如何处理仅以CR 结尾的行,LF 字符?我是否应该将它们视为文字并传递给字段,解释为行结束。或者也许配音文件格式错误?

我猜,最灵活的解决方案是接受任何一种类型的线端,但我想弄清楚标准是怎么说的。

你怎么看?

【问题讨论】:

标签: csv csv-import rfc4180


【解决方案1】:

您当然不应该将它们视为格式错误,因为例如在 Linux、Windows 和 Mac 上可能会有不同的行尾。

最好全部支持。

此外,如果引用正确,字段中也可以包含换行符。所以你也需要检查一下。

例如:

123,"test on 2 
lines",456

是一个有效的 csv 行。

【讨论】:

  • 当然,我接受那些类型的字段。所以这个RFC标准中的CRLF应该读作CR或者LF或者CRLF?
  • @PKua 没有真正的 csv 或 tsv 标准,只有这个 RFC。但是,是的,最好支持这三个:CRLFCRLF。文件也有可能使用CRLF 作为记录结尾,但在多行字段中仅使用LF(或CR)。
  • 好点。所以我想我会选择行分隔符,并在引用字段中获取未更改的 CR|LF 字符序列。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-16
  • 2019-07-11
  • 2020-11-26
  • 2011-06-10
  • 1970-01-01
相关资源
最近更新 更多