我正在尝试上传文件,但出现以下错误:
"\xFF" from ASCII-8BIT to UTF-8
我非常关注 Rails 指南的工作。这是我正在使用的代码。
file = params[:uploaded_file]
File.open(Rails.root.join('public', 'images', file.original_filename), 'w') do |f|
f.write(file.read)
end
我不明白为什么它不起作用。我做错了什么?
更新 -- 这是应用程序跟踪
app/controllers/shows_controller.rb:16:in `write'
app/controllers/shows_controller.rb:16:in `block in create'
app/controllers/shows_controller.rb:15:in `open'
app/controllers/shows_controller.rb:15:in `create'
最佳答案
我相信这是 Rails 3 与 ruby 1.9 的工作方式的变化,因为 1.9 支持编码,它将尝试将所有字符串转换为您在应用程序配置 (application.rb) 中设置的任何编码,通常是 'utf -8'。
为避免编码问题,以二进制模式打开文件,因此对于二进制可写模式,您的模式将为“wb”:
File.open(Rails.root.join('public', 'images', file.original_filename), 'wb') do |f|
f.write(file.read)
end
关于Ruby on Rails 上传文件问题 奇数 utf8 转换错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4988724/