CSV在ruby字符串中生成多个双引号

时间:2017-09-19 00:30:09

标签: ruby csv

我使用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""" 。有谁知道原因?怎么解决这个?

1 个答案:

答案 0 :(得分:2)

这实际上是CSV如何逃避双引号:

  
      
  1. 如果使用双引号括起字段,则使用双引号      出现在一个字段内必须通过前面的方式进行转义      另一个双引号。例如:

    "aaa","b""bb","ccc"
    
  2.   

因为你的字段里面有双引号,所以你需要引用整个列:

  
      
  1. 每个字段可能包含也可能不包含在双引号中(但是      某些程序(如Microsoft Excel)不使用双引号      在所有)。 如果字段没有用双引号括起来,那么      双引号可能不会出现在字段中。
  2.   

(强调我的)如果你真的想要禁用该功能,只需将quote_char设置为其他内容:

puts CSV.generate(quote_char: "'") { |csv| csv << ["=\"000123\""] }
# ="000123"