summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/redmine/codeset_util.rb7
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/redmine/codeset_util.rb b/lib/redmine/codeset_util.rb
index 33fe88bd7..45a5c3524 100644
--- a/lib/redmine/codeset_util.rb
+++ b/lib/redmine/codeset_util.rb
@@ -103,10 +103,11 @@ module Redmine
encodings = Setting.repositories_encodings.split(',').collect(&:strip)
encodings.each do |encoding|
if str.respond_to?(:force_encoding)
- str.force_encoding(encoding)
begin
- return str.encode('UTF-8')
- rescue Encoding::InvalidByteSequenceError
+ str.force_encoding(encoding)
+ utf8 = str.encode('UTF-8')
+ return utf8 if utf8.valid_encoding?
+ rescue
# do nothing here and try the next encoding
end
else