北海道苫小牧市出身の初老PGが書くブログ

永遠のプログラマを夢見る、苫小牧市出身のおじさんのちらしの裏

web-svn-viewの文字化け

Winにsvnapacheweb-svn-viewを突っ込んでみたんだけど、web-svn-viewがひどく文字化け。CGIからsvnコマンドを開いているのだが、そいつがShift_JISで動いてくれないっぽい。DOS窓から同じコマンドを叩いた場合はうまく動くので、localeとか環境変数の絡みか・・・。

わからんから、svnコマンドからの戻りをShift_JISにして、svnコマンドへの出力をutf8に戻す駄目パッチを作成。

157,164d156
< # 駄目なパッチ
< sub DAME_URI_ESC{
<       my $str = shift;
<       $str = jcode($str, 'utf8')->utf8();
<       $str =~ s/([^0-9a-zA-Z_:?/.])/'%' . unpack('H2', $1)/eg;
<       return $str;
< }
<
171,174d162
<
< # 駄目なパッチ
< $cmd =~ s/?s(?S+)$/' ' . DAME_URI_ESC($1)/e;
<
176d163
<
188,192d174
< #駄目なパッチ
< use Jcode;
< $line =~ s/????(?d{3})/pack("C", $1)/egi;
< $line = jcode($line, getcode($line) || 'utf8')->utf8;
<
690,693d671
<
< #駄目なパッチ
<  qq{<meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">?n},
<

ホンと駄目ゲだけど、動くからよし・・・か?