加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 19:18:27 所属栏目:百科 来源:网络整理
导读:我生成的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","Te
我生成的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 ?"] }

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读