--- redmine/lib/redmine/codeset_util.rb 2016-10-10 14:48:13.000000000 +0700 +++ redmine/lib/redmine/codeset_util.rb.n 2017-07-13 15:24:10.791827525 +0700 @@ -1,3 +1,4 @@ +require 'rchardet' module Redmine module CodesetUtil @@ -46,6 +47,7 @@ return str if /\A[\r\n\t\x20-\x7e]*\Z/n.match(str) # for us-ascii str.force_encoding('UTF-8') encodings = Setting.repositories_encodings.split(',').collect(&:strip) + encodings.unshift(CharDet.detect(str)['encoding']) encodings.each do |encoding| begin str.force_encoding(encoding)