1

RFC 4180在第 2 页中指出:

在标题和每条记录中,可能有一个或多个字段,以逗号分隔。每一行都应在整个文件中包含相同数量的字段。空格被认为是字段的一部分,不应被忽略。记录中的最后一个字段后面不能有逗号。

所以,根据这个标准,这将是无效的:

cat,dog,cow,

但是,理论上它应该代表“猫”、“狗”、“牛”和“”的一行。因此,如果添加逗号会创建一个新的“最后一个”元素,那么该规则实际上永远不会出错。事实上,要尊重“每一行应该在整个文件中包含相同数量的字段”。在这种情况下我们需要它:

aaa,bbb,ccc,ddd
cat,dog,cow,

事实上,一些导出 CSV 的程序会这样做以进行填充(例如:Google 表格)。

最后,以下是尊重标准的唯一正确方法吗?

aaa,bbb,ccc,ddd
cat,dog,cow,""

还是规则只是错误或多余的?我理解错了吗?

4

1 回答 1

1

这条规则一点也没有错,但必须非常文雅地阅读:最后一个字段后面不能有逗号。

如果最后一个元素为空,则它是最后一个元素,后面是逗号,这很好。

所以这没关系

a,b,c,d
x,y,z,
u,v,,
w,,,

但这是错误的

a,b,c,d
x,y,z,
d,e,f,g,

从讨论中编辑

a,b,c,d,
e,f,g,h,
i,j,k,l,
m,n,o,p,

根据相关规则,也被禁止

于 2019-12-08T11:28:45.770 回答