Rails解析CSV Separtor ¦

时间:2018-08-28 11:31:18

标签: ruby-on-rails ruby csv parsing

我的csv文件格式异常

2783¦Larson and Sons
967¦Becker Group
333¦Rolfson LLC

我试图这样做

CSV.foreach("#{Rails.root}/csv_files/suppliers.csv") do |supplier|
  p supplier[0]
end

但有一个字符串"2783¦Larson and Sons"

如何分隔值? 例如将返回

supplier[0] #=> "2783"
supplier[1] #=> "Larson and Sons"

1 个答案:

答案 0 :(得分:1)

您为什么希望CSV知道如何处理这个奇怪的输入?您应该明确指定编码和列分隔符。

CSV.read("#{Rails.root}/csv_files/suppliers.csv",
      encoding: Encoding::ISO_8859_1,
      col_sep: "\xC2\xA6".force_encoding(Encoding::ISO_8859_1)) do |supplier|
  puts supplier.inspect
end
#⇒ [["2783", "Larson and Sons"],
#   ["967", "Becker Group"],
#   ["333", "Rolfson LLC"]]