Index: app/models/svn_repos.rb
===================================================================
--- app/models/svn_repos.rb (リビジョン 528)
+++ app/models/svn_repos.rb (作業コピー)
@@ -303,6 +303,7 @@
class DiffTableList < Array
+ require 'nkf'
def initialize (diff, type="inline")
diff_table = DiffTable.new type
diff.each do |line|
@@ -310,7 +311,7 @@
self << diff_table if diff_table.length > 1
diff_table = DiffTable.new type
end
- a = diff_table.add_line line
+ a = diff_table.add_line(NKF.nkf('-w', line))
end
self << diff_table
end
1行ずつ変換してるから、精度は悪そうですが…。
diff の結果は tmp/cache/repositories にキャッシュされるので、表示速度
の変化はあまり気にならないです。
はたして diff の文字コードをいじるのが良いのか悪いのかわからないので、
オフィシャルへはフィードバックしていません。英語の、壁もあるんで。汗
リポジトリブラウザでの文字化けは Trac でも経験していて
何とかならないかなぁと思っていました。
> 英語の、壁もあるんで。汗
是非チャレンジしてみては?
On 5月12日, 午後3:10, Kyosuke Takayama <supp...@mc.neweb.ne.jp> wrote:
> リポジトリブラウザで diff を見るときに、EUC とか SJIS な部分が文字化け
> してしまうので、NKF で UTF8 に変換してから表示されるようにしてみました。
>
> Index: app/models/svn_repos.rb
> ===================================================================
> --- app/models/svn_repos.rb (リビジョン 528)
> +++ app/models/svn_repos.rb (作業コピー)
> @@ -303,6 +303,7 @@
>
> class DiffTableList < Array
>
> + require 'nkf'
> def initialize (diff, type="inline")
> diff_table = DiffTable.new type
> diff.each do |line|
> @@ -310,7 +311,7 @@
> self << diff_table if diff_table.length > 1
> diff_table = DiffTable.new type
> end
> - a = diff_table.add_line line
> + a = diff_table.add_line(NKF.nkf('-w', line))
> end
> self << diff_table
> end
>
> 1行ずつ変換してるから、精度は悪そうですが...。
Index: app/models/svn_repos.rb
===================================================================
--- app/models/svn_repos.rb (リビジョン 528)
+++ app/models/svn_repos.rb (作業コピー)
@@ -17,6 +17,7 @@
require 'rexml/document'
require 'cgi'
+require 'nkf'
module SvnRepos
@@ -178,7 +179,7 @@
cat = io.read
end
return nil if $? && $?.exitstatus != 0
- cat
+ NKF.nkf('-w', cat)
rescue Errno::ENOENT => e
raise CommandFailed
end
@@ -310,7 +311,7 @@
self << diff_table if diff_table.length > 1
diff_table = DiffTable.new type
end
- a = diff_table.add_line line
+ a = diff_table.add_line(NKF.nkf('-w', line))
end
self << diff_table
end
>> 英語の、壁もあるんで。汗
> 是非チャレンジしてみては?
いやあ、文字まわりは伝えるのが大変そうで。
とりあえず、上のパッチをもうちょっと使ってから、交渉してみようと思います。