From 1e5e1b6ae761be67f59c57ce8eec7406e3b63969 Mon Sep 17 00:00:00 2001 From: Toshi MARUYAMA Date: Tue, 22 Feb 2011 08:29:35 +0000 Subject: [PATCH] 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 --- app/helpers/repositories_helper.rb | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/helpers/repositories_helper.rb b/app/helpers/repositories_helper.rb index 2e4fbb5f..ff2cfc3b 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