如果我有一个应用程序坐在* nix框上,我生成一个csv,然后传递给瘦客户端用户,如果他们在Windows上并且想要一个合适的csv,我必须采取什么预防措施?
我的意思是这个流程:
UNIX:
1)使用System.getProperty("line.separator")
生成csv
2)传递给瘦客户端
在Windows / Unix的:
1)从浏览器下载文件
2a)在Excel中打开(Windows)
2b)在某些电子表格应用程序中打开
我不是在寻找使用Library X
的答案,对于仅为一个项目使用的图书馆增加技术风险缺乏喜爱。
答案 0 :(得分:1)
没有正式的规范,允许a CSV文件的各种解释。这个部分 记录大多数人似乎遵循的格式 实现:
每条记录都位于一条单独的行上,由一行分隔 休息(CRLF)。例如:
aaa,bbb,ccc CRLF zzz,yyy,xxx CRLF
文件中的最后一条记录可能有也可能没有结束行 打破。例如:
aaa,bbb,ccc CRLF ZZZ,YYY,XXX
- 醇>
可能有一个可选的标题行显示为第一行 与普通记录行格式相同的文件。这个 标头将包含与文件中的字段对应的名称 并且应包含与记录中相同数量的字段 文件的其余部分(标题行的存在与否) 应通过此选项的“header”参数表示 MIME类型)。例如:
field_name,field_name,field_name CRLF aaa,bbb,ccc CRLF zzz,yyy,xxx CRLF
因此System.getProperty("line.separator")
不正确,应使用\r\n
。