Detect encoding of uploaded files and convert to UTF-8. Finally.

This commit is contained in:
Sebastian Serth
2021-05-17 19:33:32 +02:00
parent b96f70caf6
commit a6c6b07a91
3 changed files with 5 additions and 2 deletions

View File

@ -5,6 +5,7 @@ source 'https://rubygems.org'
gem 'bcrypt' gem 'bcrypt'
gem 'bootstrap-will_paginate' gem 'bootstrap-will_paginate'
gem 'carrierwave' gem 'carrierwave'
gem 'charlock_holmes', require: 'charlock_holmes/string'
gem 'docker-api', require: 'docker' gem 'docker-api', require: 'docker'
gem 'eventmachine' gem 'eventmachine'
gem 'factory_bot_rails' gem 'factory_bot_rails'

View File

@ -133,6 +133,7 @@ GEM
marcel (~> 1.0.0) marcel (~> 1.0.0)
mini_mime (>= 0.1.3) mini_mime (>= 0.1.3)
ssrf_filter (~> 1.0) ssrf_filter (~> 1.0)
charlock_holmes (0.7.7)
childprocess (3.0.0) childprocess (3.0.0)
chronic (0.10.2) chronic (0.10.2)
coderay (1.1.3) coderay (1.1.3)
@ -393,7 +394,7 @@ GEM
rspec-mocks (~> 3.10) rspec-mocks (~> 3.10)
rspec-support (~> 3.10) rspec-support (~> 3.10)
rspec-support (3.10.2) rspec-support (3.10.2)
rubocop (1.14.0) rubocop (1.15.0)
parallel (~> 1.10) parallel (~> 1.10)
parser (>= 3.0.0.0) parser (>= 3.0.0.0)
rainbow (>= 2.2.2, < 4.0) rainbow (>= 2.2.2, < 4.0)
@ -525,6 +526,7 @@ DEPENDENCIES
bootstrap-will_paginate bootstrap-will_paginate
capybara capybara
carrierwave carrierwave
charlock_holmes
concurrent-ruby concurrent-ruby
database_cleaner database_cleaner
docker-api docker-api

View File

@ -218,7 +218,7 @@ user_id: current_user.id, user_type: current_user.class.name
file_params[:content] = nil file_params[:content] = nil
file_params[:native_file] = file_attributes[:content] file_params[:native_file] = file_attributes[:content]
else else
file_params[:content] = file_attributes[:content].read.encode.delete("\x00") file_params[:content] = file_attributes[:content].read.detect_encoding!.encode.delete("\x00")
end end
end end
end end