Ruby:如何生成具有Excel友好编码的CSV文件

前端之家收集整理的这篇文章主要介绍了Ruby:如何生成具有Excel友好编码的CSV文件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
生成的CSV文件一旦生成就需要在Excel中打开和查看. Excel似乎需要与UTF-8不同的编码.

这是我的配置和生成代码

csv_config = {col_sep: ";",row_sep: "\n",encoding: Encoding::UTF_8
             }

csv_string = CSV.generate(csv_config) do |csv|
  csv << ["Text a","Text b","Text æ","Text ø","Text å"]
end

在Excel中打开时,特殊字符未正确显示

Text a  Text b  Text æ Text ø Text å

知道如何确保正确编码吗?

解决方法

您应该将编码切换为ISO-8859-1,如下所示:
CSV.generate(encoding: 'ISO-8859-1') { |csv|  csv << ["Text á","Text é","Text æ"] }

对于您的上下文,您可以这样做:

config = {
  col_sep: ';',row_sep: ';',encoding: 'ISO-8859-1'
}

CSV.generate(config) { |csv|  csv << ["Text á","Text æ"] }

我有同样的问题,并且编码已修复.

猜你在找的Ruby相关文章