Rails でアップロードされたファイルの各行を読み取ろうとしています。
file_data = params[:files]
if file_data.respond_to?(:read)
file_data.read.gsub( /\n/, "\r\n" ).split("\r\n").each do |line|
inputUsers.push(line.strip)
end
elsif file_data.respond_to?(:path)
File.read(file_data.path).gsub( /\n/, "\r\n" ).split("\r\n").each do |line|
inputUsers.push(line.strip)
end
アップロードされたファイルに Windows と Unix のエンコーディングが混在している場合、おそらく複数の場所からコピーしたことが原因で、Rails はファイルの各行を適切に区切らず、2 行を 1 行として返すことがあります。
アプリケーションは Linux ボックスでホストされています。また、ファイルは Google ドキュメントのスプレッドシートの列からコピーされます。
この問題の解決策はありますか?
編集:
新しい行に分割されない行の 16 進コードは次のようになります。
636f 6d0d 0a4e 6968