0

私の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に変換される前に、どうすればよいでしょうか。

4

1 に答える 1

1

以下を使用して、すべてのデータを再エンコードできるはずです。

uploaded_io.read.encode('UTF-8')

何らかの理由で再マッピングできないキャラクターは例外を引き起こす可能性があることに注意してください。徹底的にテストしてください。

于 2012-09-25T20:53:54.413 に答える