Rails 未从 CSV 中读取特定列

Rails Not Reading a Specific Column from CSV

我试图在 Rails 5.2.3 (Ruby 2.6.3) 中读取我的 CSV 文件,但它没有读取特定的列。

CSV 文件:

barcode,hardware,title,price
2900007868390,PS4,title1,300
3499550362923,PS4,title2,1800
3499550370973,Nintendo Switch,title3,5000

and so on...

代码:

csv = CSV.read('path/to/my_csv.csv', headers: true)
csv.each do |row|
  puts "#{row['barcode']}, #{row['hardware']}, #{row['title']}, #{row['price']}"
end

结果:

, PS4, title1, 300
, PS4, title2, 1800
, Nintendo Switch, title3, 5000

and so on...

正如您在上面看到的,由于某种原因它没有读取条形码列。
如果我写 row[0] 而不是 row['barcode'] .
,我已经设法获得了条形码值 知道为什么会这样吗?

这是因为我的 CSV 文件有 BOM...
https://en.wikipedia.org/wiki/Byte_order_mark

下面的代码解决了问题:

csv = CSV.read("resources/games/original_#{date}.csv", 'r:BOM|UTF-8', headers: true)

谢谢@dimitry_n的帮助!