在Excel中从ActiveRecord中导出Ruby CSV看起来很奇怪

5hcedyr0  于 2022-09-21  发布在  Ruby
关注(0)|答案(1)|浏览(203)

当我使用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或其他格式。

在崇高文本中,如下所示:

在Excel中如下所示:

dwthyt8l

dwthyt8l1#

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

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

相关问题