Ruby CSV<< []没有正确换行

时间:2014-02-14 06:04:54

标签: ruby excel vba csv

我这里有一个有线问题,

我使用标准CSV<<我的代码中的[“a”,“b”],输出文件在Excel和Sublime Text 2中表现得很好(优雅的换行符)

但是我用Windows记事本打开文件,结果只是一行。

我尝试使用VBA逐行读取此文件,只获得一行。

这是我的代码,

require "csv"
CSV::open("some_file.csv", "w") do |csv|
  csv << ["a", "b"]
  csv << ["a1", "b1"]
end

在Sublime Text 2中,我得到了

a,b
a1,b1

但是在Windows记事本中,我只能

a,ba1, b1

知道为什么吗?

[更新] 这是Windows记事本,而不是Windows文本编辑器,对不起该错误。

1 个答案:

答案 0 :(得分:2)

原因是unix和windows系统不能以相同的方式处理换行符表示。见this wikipedia article。为简化起见,unix使用LF,其编写为\n,而Windows需要CR+LF\r\n。这就是为什么它在Windows中打开时似乎在同一条线上。您可以使用@ arup-rakshit解决方案,额外\r不应该受到伤害,但您可能需要在再次阅读时指定它。否则,有一些工具可以将unix文件转换为Windows文件,反之亦然。