1

我正在编写一个 Rails 应用程序,它允许用户上传 TSV(制表符分隔值)文件以在服务器上解析。这些文件以 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

有什么我可以做的解决方法吗?

4

1 回答 1

0

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

File.open(params[:batch_import][:file].path, 'rb:utf-16') do |f|
  @recipients = Recipient.from_tsv(f.read)
end
于 2013-02-26T20:21:27.537 回答