在我的rails应用程序中,我进行文件上传,我的一些文件是俄语(和其他...)。如果我只是尝试:
require 'fileutils'
uploaded_io = params[:aut]
File.open(Rails.root.join('public', 'uploads_prices', uploaded_io.original_filename), 'w', :encoding => "r:UTF-8") do |file|
file.write(uploaded_io.read)
end
我收到错误
如果我写
require 'fileutils'
uploaded_io = params[:aut]
File.open(Rails.root.join('public', 'uploads_prices', uploaded_io.original_filename), 'wb') do |file|
file.write(uploaded_io.read)
end
一切正常,但是当我解析我的csv文件时,我需要使用选项解码它们
R:ISO-8859-15:UTF-8
这不好。那么,如果我将文件发送到方法,我怎么能这样做,它保存它,但在它将此文件转换为utf8之前?
答案 0 :(得分:0)
您应该能够使用以下方法重新编码任何数据:
uploaded_io.read.encode('UTF-8')
请记住,无论出于何种原因,任何无法重新映射的字符都可能导致异常,因此请务必进行彻底测试。