问题标签 [rfc4180]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
5831 浏览

php - 是否有可以使用 PHP 编写 RFC 4180 CSV 文件的库?

我知道 fputcsv,但根据这个“wontfix”错误fputcsv 不能正确地转义输入,并且出于兼容性原因,它的行为不会被修复。我更喜欢符合RFC 4180的实现,以便 Excel 和 LibreOffice 在所有情况下都可以打开它。

我尝试在谷歌上搜索一个正确执行此操作的库,但似乎对一个体面的第三方库没有达成共识,而是通常建议有缺陷的 fputcsv。我总是可以自己动手,但如果可能的话,我宁愿不要重新发明轮子。

0 投票
1 回答
1910 浏览

csv - text/csv mimetype 的可选标头参数的正确语法?

根据RFC 4180

...标题行的存在与否应通过此 MIME 类型的可选“标题”参数指示...

那么,这是否意味着正确的字符串是:

也许:

或者是其他东西?

0 投票
1 回答
31107 浏览

mysql - 从双引号用作转义字符的 CSV 文件中加载数据

我有一堆 CSV 数据需要加载到 MySQL 数据库中。好吧,也许是 CSV-ish。(编辑实际上,它看起来像 RFC 4180 中描述的东西

每行都是逗号分隔的双引号字符串列表。要转义出现在列值中的任何双引号,请使用双双引号。反斜杠可以代表自己。

例如,该行:

如果解析成 JSON 应该是:

我正在尝试使用LOAD DATA来读取 CSV,但我遇到了一些奇怪的行为。


例如,考虑我是否有一个简单的两列表

如果我的输入文件的第一个非标题行结束于""

我可以加载每个非标题行,但第一个:

或者我可以加载包括标题在内的所有行:

如果我的输入文件中没有任何行结束于""

然后我可以不加载任何行:

或者我可以加载包括标题在内的所有行:

所以现在我已经发现了很多错误的方法,我该如何LOAD DATA将这些文件中的数据导入到我的数据库中呢?

0 投票
2 回答
332 浏览

csv - SPSS Syntax 导入带有转义双引号的 RFC 4180 CSV 文件

如何将 RFC4180 标准的 CSV 文件读入 SPSS?具体来说,如何处理嵌入了双引号的字符串值(正确地)用第二个双引号转义?

这是一个值有问题的记录的实例:

我使用的 SPSS 语法如下:

导入成功,但在遇到此类值后偏离轨道并引发警告。

0 投票
0 回答
162 浏览

csv - VBScript 处理 CSV (RFC4180)

让我先说我是一个只有一点开发经验的系统管理员。如果这不是 stackoverflow 的问题,请随时移动/删除/指向正确的方向。

我正在尝试做的是读取符合RFC4180的csv 文件,并将每个值放入数组中,以便在脚本中进一步处理。下面是我能想到的最复杂但最合规的 csv 行,它可以工作,但这个脚本将面向客户,所以如果你能看一下并测试逻辑/向我展示其中的部分,我会很高兴我错过了一些东西。

如果可能的话,我也喜欢最佳实践指针。

这是一个摘录,基本上我从 CSV 文件中读取一行,并根据我对 RFC 4180 的理解对每个字符进行迭代,测试和应用不同的东西。chr(34) 代表双引号 ("),这是唯一的方法我可以找到在 VBScript 中进行比较。

下面是 CSV 记录中的一行示例:

0 投票
1 回答
159 浏览

regex - 需要正则表达式帮助清理分隔数据

我有一些用管道分隔的数据,如下所示:

我遇到的问题是双引号没有为分隔字段正确形成(包含分隔符或引号的字段本身应该用双引号括起来,并且双引号应该被排除加上另一个双引号)。这就是输出应该是什么:

任何人都知道是否有一种简单的方法可以使用正则表达式来做到这一点?

0 投票
1 回答
1059 浏览

csv - 关于行尾的 CSV 标准

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

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

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

我想,最灵活的解决方案是接受任何一种类型的线路结束,但我试图弄清楚标准所说的内容。

你怎么看待这件事?

0 投票
1 回答
526 浏览

opencsv - OpenCSV 不符合 CSV 标准 (RFC 4180)

我使用 openCSV 解析 CSV 文件(分隔符为 ' ; ' & 引号字符为 ' " '),当解析错误格式时,如下行:
column1;"column2";column""3
结果是一个值数组:a [0] = 列 1,a[1] = 列 2,a[2] = 列“3

但我认为这是一个错误的结果,因为输入(在字符串中:column""3)违反了 RFC 4180 的规则 5(https://www.rfc-editor.org/rfc/rfc4180):
每个字段可能是也可能不是用双引号括起来(但是某些程序,例如 Microsoft Excel,根本不使用双引号)。 如果字段没有用双引号括起来,则双引号可能不会出现在字段内。

有谁知道如何在 openCSV 中检测到这种违规行为?

0 投票
1 回答
456 浏览

csv - 要根据 RFC 4180 验证 CSV 文件,规则是“记录中的最后一个字段不能跟逗号”。错误的?

RFC 4180在第 2 页中指出:

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

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

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

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

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

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

0 投票
0 回答
297 浏览

python - Python Pandas - CSV 导入 RFC 4180

我有一个关于熊猫 csv 模块的简短问题。格式是否标准化(RFC 4180)?也许基于 Lib/csv.py 模块?这是否记录在案(来源)?