rog*_*iog 44 ruby csv ruby-on-rails utf-8
我正在尝试解析从Excel电子表格生成的CSV文件.
这是我的代码
require 'csv'
file = File.open("input_file")
csv = CSV.parse(file)
Run Code Online (Sandbox Code Playgroud)
但是我得到了这个错误
ArgumentError: invalid byte sequence in UTF-8
Run Code Online (Sandbox Code Playgroud)
我认为错误是因为Excel将文件编码到ISO 8859-1 (Latin-1)而不是编入UTF-8
请有人帮我解决这个问题
提前致谢.
Lin*_*ios 66
您需要告诉Ruby该文件是ISO-8859-1.将文件打开行更改为:
file=File.open("input_file", "r:ISO-8859-1")
Run Code Online (Sandbox Code Playgroud)
第二个参数告诉Ruby使用编码ISO-8859-1打开只读.
小智 16
使用encoding选项指定编码:
CSV.foreach(file.path, headers: true, encoding:'iso-8859-1:utf-8') do |row|
...
end
Run Code Online (Sandbox Code Playgroud)
kix*_*orz 12
您可以在文件模式参数中直接提供源编码:
CSV.foreach( "file.csv", "r:windows-1250" ) do |row|
<your code>
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27063 次 |
| 最近记录: |