diff --git a/app/controllers/main_controller.rb b/app/controllers/main_controller.rb --- a/app/controllers/main_controller.rb +++ b/app/controllers/main_controller.rb @@ -63,7 +63,8 @@ @submission.user = user @submission.language_id = 0 if (params['file']) and (params['file']!='') - @submission.source = params['file'].read + @submission.source = File.open(params['file'].path,'r:UTF-8',&:read) + @submission.source.encode!('UTF-8','UTF-8',invalid: :replace, replace: '') @submission.source_filename = params['file'].original_filename end @submission.submitted_at = Time.new.gmtime diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -124,6 +124,7 @@ @histogram[:data][d.to_i] += 1 if d < range @summary[:count] += 1 + next unless sub.problem problem[sub.problem] = [problem[sub.problem], (sub.points >= sub.problem.full_score) ? 1 : 0].max end