我正在编写一个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
我有什么可以解决的问题吗?
答案 0 :(得分:0)
必须使用binary
模式打开UTF-16文件。试试这个:
File.open(params[:batch_import][:file].path, 'rb:utf-16') do |f|
@recipients = Recipient.from_tsv(f.read)
end