1

如果我有一个应用程序位于 *nix 盒子上,并且我生成了一个 csv,然后将其传递给瘦客户端用户,如果他们在 Windows 上并且想要一个正确的 csv,我必须采取哪些预防措施?

我的意思是这个流程:

UNIX:
1)使用 2)生成 csvSystem.getProperty("line.separator")
传递给瘦客户端

Windows/Unix:
1) 从浏览器下载文件
2a) 在 Excel (Windows)
中打开 2b) 在某些电子表格应用程序中打开

我不是在寻找说 use 的答案,我不Library X喜欢为仅用于一个项目的库增加技术风险。

4

1 回答 1

1

根据 [rfc4180 第 2 节][1]

不存在正式的规范,允许对 CSV 文件进行多种解释。本节记录了大多数实现似乎遵循的格式:

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

    aaa,bbb,ccc CRLF zzz,yyy,xxx CRLF

  2. 文件中的最后一条记录可能有也可能没有结束换行符。例如:

    aaa,bbb,ccc CRLF zzz,yyy,xxx

  3. 可能有一个可选的标题行作为文件的第一行出现,其格式与普通记录行相同。此标题将包含与文件中的字段对应的名称,并且应包含与文件其余部分中的记录相同数量的字段(标题行的存在或不存在应通过此选项的可选“header”参数指示MIME 类型)。例如:

    field_name,field_name,field_name CRLF aaa,bbb,ccc CRLF zzz,yyy,xxx CRLF

因此System.getProperty("line.separator")是不正确的,\r\n应改为使用。[1]:https ://www.rfc-editor.org/rfc/rfc4180#section-2

于 2013-03-05T15:11:50.827 回答