我这里有一个有线问题,
我使用标准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文本编辑器,对不起该错误。
答案 0 :(得分:2)
原因是unix和windows系统不能以相同的方式处理换行符表示。见this wikipedia article。为简化起见,unix使用LF
,其编写为\n
,而Windows需要CR+LF
:\r\n
。这就是为什么它在Windows中打开时似乎在同一条线上。您可以使用@ arup-rakshit解决方案,额外\r
不应该受到伤害,但您可能需要在再次阅读时指定它。否则,有一些工具可以将unix文件转换为Windows文件,反之亦然。