2013-02-21 46 views
1

我正在編寫一個Rails應用程序,允許用戶上傳要在服務器上解析的TSV(製表符分隔值)文件。這些文件以UTF-16編碼。本地一切都很順利,但是當我嘗試在Heroku上使用這種編碼打開文件時,我收到一條警告,指出warning: Unsupported encoding utf-16 ignored。後來我試着讀這樣的文件,顯然失敗,說明invalid byte sequence in UTF-8。看下面的代碼摘錄:無法解析在Heroku上以UTF-16上傳的文件

File.open(params[:batch_import][:file].path, 'r:utf-16') do |f| 
     @recipients = Recipient.from_tsv(f.read) 
    end 

有沒有什麼可以做的解決方法?

回答

0

必須使用binary模式打開UTF-16文件。試試這個:

File.open(params[:batch_import][:file].path, 'rb:utf-16') do |f| 
    @recipients = Recipient.from_tsv(f.read) 
end 
+0

不幸的是,這並沒有解決問題:( – 2013-03-16 15:37:47