从Excel中的ActiveRecord单引号导出Ruby CSV看起来很奇怪

时间:2018-05-23 23:03:58

标签: ruby-on-rails ruby excel csv

使用Ruby's CSV library从我的表中提取数据后,从Excel打开导出的CSV文件。我使用Excel打开文件(我的所有用户都使用Excel打开我的CSV文件)。它看起来很时髦。这是一些屏幕截图。

我尝试将其转换为ASCII,但是我收到错误: Encoding::UndefinedConversionError: U+2019 from UTF-8 to US-ASCII

CSV.open(fileNameInbound, 'wb', :encoding => Encoding::US_ASCII) do |csv| 
  myModel.all.each do |m| 
    csv << m 
  end 
end

我的用户不懂科技,所以我不能让他们尝试将其改为UTF-8或其他东西。

在Sublime中,Text看起来像这样:

enter image description here

在Excel中看起来像这样:

enter image description here

1 个答案:

答案 0 :(得分:0)

我通过在文件开头添加BOM字符来修复我的问题,以强制在Excel中使用UTF-8。

CSV.open(fileNameInbound, 'wb', :encoding: 'UTF-8') do |csv| 
  myModel.all.each do |m| 
    csv << ['\xef\xbb\xbf']
    csv << m 
  end 
end