无法解析Heroku上以UTF-16上传的文件

时间:2013-02-21 02:53:08

标签: ruby-on-rails file-upload encoding heroku utf-8

我正在编写一个Rails应用程序,允许用户上传要在服务器上解析的TSV(Tab分隔值)文件。这些文件以UTF-16编码。一切都在本地很好,但当我尝试在Heroku上使用这样的编码打开文件时,我收到一条警告warning: Unsupported encoding utf-16 ignored。稍后我尝试阅读此类文件时,显然无法说明invalid byte sequence in UTF-8。请参阅以下代码的摘录:

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

我有什么可以解决的问题吗?

1 个答案:

答案 0 :(得分:0)

必须使用binary模式打开UTF-16文件。试试这个:

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