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

CSV在ruby字符串中生成多个双引号,ruby,csv,Ruby,Csv,我使用ruby生成一个CSV文件。我的一个数据是一个字符串,其中包含一个双引号“,例如=“000123” 这是我的代码: csv = CSV.generate do |csv| csv << ["=\"000123\""] end 我期望的结果是=“000123”。有人知道原因吗?如何解决这个问题?这实际上就是如何转义双引号的: 如果使用双引号括起字段,则使用双引号 出现在字段中时,必须在其前面加上 另一个双引号。例如: "aaa","b""bb","ccc" 由于您的字段

我使用ruby生成一个CSV文件。我的一个数据是一个字符串,其中包含一个
双引号“
,例如
=“000123”

这是我的代码:

csv = CSV.generate do |csv|
  csv << ["=\"000123\""]
end
我期望的结果是
=“000123”
。有人知道原因吗?如何解决这个问题?

这实际上就是如何转义双引号的:

  • 如果使用双引号括起字段,则使用双引号 出现在字段中时,必须在其前面加上 另一个双引号。例如:

    "aaa","b""bb","ccc"
    
  • 由于您的字段中有双引号,因此需要引用整个列:

  • 每个字段可以用双引号括起来,也可以不用双引号括起来(但是 有些程序,如Microsoft Excel,不使用双引号 如果字段没有用双引号括起来,则 双引号可能不会出现在字段内。
  • (emphasis mine)如果确实要禁用该功能,只需将
    quote_char
    设置为其他内容:

    puts CSV.generate(quote_char: "'") { |csv| csv << ["=\"000123\""] }
    # ="000123"
    
    放置CSV.generate(quote_char:“”){| CSV | CSV这就是如何转义双引号:

  • 如果使用双引号括起字段,则使用双引号 出现在字段中时,必须在其前面加上 另一个双引号。例如:

    "aaa","b""bb","ccc"
    
  • 由于您的字段中有双引号,因此需要引用整个列:

  • 每个字段可以用双引号括起来,也可以不用双引号括起来(但是 有些程序,如Microsoft Excel,不使用双引号 如果字段没有用双引号括起来,则 双引号可能不会出现在字段内。
  • (emphasis mine)如果确实要禁用该功能,只需将
    quote_char
    设置为其他内容:

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

    放置CSV.generate(quote_char:“””{CSV | CSV它看起来是错误的,但在20世纪80年代,人们对如何逃避事情有很多不好的想法,我们现在被它卡住了。它实际上并不比双反斜杠“\\t”来显示“\t”差多少“不是标签,只是一个不同的字符看起来是错误的,但在20世纪80年代,人们对如何逃避事物有很多不好的想法,我们现在被困在其中。这并不比双重反斜杠更糟糕,\\t”表示“\t”而不是标签,只是一个不同的字符