Ruby CSV - 尝试用双引号包装输出,得到""" Hello World"""而不是" Hello World"

时间:2013-03-09 07:35:13

标签: ruby csv

require 'csv'
s = "\"Hello World\""

CSV.open('output.txt', 'w') do |csv|
    csv << [s]
end

在我的文件中,我得到:

"""Hello World"""

带有额外引号的内容,以及执行此操作的正确方法是什么?我不希望所有字段都用引号括起来,只是一些。使用ruby 1.9.3p194

1 个答案:

答案 0 :(得分:5)

这是对的。 Quote characters are escaped in CSV files by doubling。所有包含逗号,换行符和/或引号字符的字段都需要用引号括起来。

所以第一个引号开始引用字段,第二个和第三个引号编码实际引用字符。

Excel screenshot

变为

Hello,"Field, with comma","2"" by 4""",123