2011-08-02 17 views
0

私はCSVファイルを持っています。ファイルに英語の文字のみが含まれていれば、すべて正常に動作し、ファイルはアップロードされ、データが含まれます。しかし、ファイルに英語以外の文字が含まれている場合はアップロードされますが、アップロードされたファイルは空です。Rails 3:英語以外の文字でcsvファイルをアップロードする

希望、誰でも手伝うことができます。

UPDATE:

背景: レール:レール3.0.9、Rubyの:ルビー1.9.2

フォーム:

<%= form_tag({:action => :import}, :multipart => true) do |f| %> 
    <%= collection_select(:contact, :list_id, current_user.lists, :id, :title) %> 
    <%= file_field_tag 'upload' %> 
    <%= submit_tag("Import") %> 
<% end %> 

コントローラー:

def import 
    begin 
    Contact.upload(params[:upload], current_user, params[:contact][:list_id]) 
    redirect_to :action => "index" 
    rescue Exception => e 
    end 
end 

モデル:

def upload(uploaded_io, user_id, list_id) 
    File.open(Rails.root.join('public', 'uploads', uploaded_io.original_filename), 'w') do |file| 
    file.write(uploaded_io.read) 
    end 

    self.import(uploaded_io.original_filename, user_id, list_id) 
end 
+2

どのようにファイルをアップロードしますか?あなたが使っているルビのバージョンは? – NARKOZ

答えて

1

チェックこのライブラリは、それは異なるエンコーディングを扱う:Iconv

私は(IO操作で)あなたはupload方法でそれを使うべきだと思う

+0

ありがとうございます。私はそれを試してみます。 –

+0

あなたを助けてくれることを歓迎します:) – bor1s

1

私は問題を解決しました。期待どおりに動作し始め、バイナリモードでファイルを開くために 'w'を 'wb'に変更しました。

ありがとうございました!他の人の助けを願います。

関連する問題