我使用ruby生成CSV文件。我的一个数据是一个字符串,其中包含val test = "abccccsdegccccccd"
test.split("c",-1)
res33: Array[String] = Array(ab, "", "", "", sdeg, "", "", "", "", "", d)
,例如double quote "
。
这是我的代码:
="000123"
但是,它会生成一个带有其他csv = CSV.generate do |csv|
csv << ["=\"000123\""]
end
的错误字符串:
double quote
我期望的结果是2.4.0 :005 > puts csv
"=""000123"""
。有谁知道原因?怎么解决这个?
答案 0 :(得分:2)
这实际上是CSV如何逃避双引号:
- 醇>
如果使用双引号括起字段,则使用双引号 出现在一个字段内必须通过前面的方式进行转义 另一个双引号。例如:
"aaa","b""bb","ccc"
因为你的字段里面有双引号,所以你需要引用整个列:
- 每个字段可能包含也可能不包含在双引号中(但是 某些程序(如Microsoft Excel)不使用双引号 在所有)。 如果字段没有用双引号括起来,那么 双引号可能不会出现在字段中。
醇>
(强调我的)如果你真的想要禁用该功能,只需将quote_char
设置为其他内容:
puts CSV.generate(quote_char: "'") { |csv| csv << ["=\"000123\""] }
# ="000123"