Rails parse csv separtor ¦ - PullRequest
       2

Rails parse csv separtor ¦

0 голосов
/ 28 августа 2018

У меня есть 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 голосов
/ 28 августа 2018

Почему вы ожидаете, что 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"]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...