我正在try 解析从ExcelElectron 表格生成的CSV文件.

这是我的密码

require 'csv'
file = File.open("input_file")
csv = CSV.parse(file)

但我得到了这个错误

ArgumentError: invalid byte sequence in UTF-8

我认为错误是因为Excel将文件编码为ISO 8859-1 (Latin-1),而不是UTF-8

有人能帮我解决这个问题吗

提前谢谢.

推荐答案

你需要告诉Ruby这个文件在ISO-8859-1中.将文件打开行更改为:

file=File.open("input_file", "r:ISO-8859-1")

第二个参数告诉Ruby使用编码ISO-8859-1以只读方式打开.

Ruby-on-rails相关问答推荐

本地主机的上衣配置

Rails 7 中的预编译

active_storage.resolve_model_to_route的不同值代表什么意思?

select2 未应用于所有下拉列表;它只适用于数据的最后一条记录

多行与内联块之间的不同行为

如何保持 en.yml DRY?

Rspec期望()与期望{}

别名可能与不同模型的相同别名有许多关联?

我真正运行的是哪个 Ruby 版本?

Ruby on Rails 有没有好的管理生成器?

如何在 Rails 3 中使用 Capybara 单击具有相同文本的第二个链接?

使用 Rspec 测试 Rails 3.1 可安装引擎

如何将 Ruby 哈希转换为 XML?

Ruby on Rails 的 varchar 迁移问题

Rails:参数太少

如何在 routes.rb 中使用 301 或 302 进行重定向

在 ID 存在时获取表的未知主键

删除链接在 Rails 3 视图中发送Get而不是Delete

在 ruby​​ on rails 上构建方法

如何在 ROR (Ruby) 中显示 PDF?