From: Toshi MARUYAMA Date: Tue, 22 Feb 2011 08:29:35 +0000 (+0000) Subject: scm: Ruby 1.9 compatibility for diff, cat and blame (#2664). X-Git-Tag: 1.2.0~901 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=d43284ba047606b86d03a4a0b6c34ab252b73629;p=redmine.git scm: Ruby 1.9 compatibility for diff, cat and blame (#2664). "\xC2\x80" of latin1(iso-8859-1) is valid sequence of UTF-8. to_utf8() should not return string if it is UTF-8 valid_encoding. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@4922 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- diff --git a/app/helpers/repositories_helper.rb b/app/helpers/repositories_helper.rb index 68d9ad14d..c14059166 100644 --- a/app/helpers/repositories_helper.rb +++ b/app/helpers/repositories_helper.rb @@ -119,11 +119,13 @@ module RepositoriesHelper def to_utf8(str) if str.respond_to?(:force_encoding) str.force_encoding('UTF-8') - return str if str.valid_encoding? else + # TODO: + # Japanese Shift_JIS(CP932) is not compatible with ASCII. + # UTF-7 and Japanese ISO-2022-JP are 7bits clean. return str if /\A[\r\n\t\x20-\x7e]*\Z/n.match(str) # for us-ascii end - + @encodings ||= Setting.repositories_encodings.split(',').collect(&:strip) @encodings.each do |encoding| begin