WebSVN で ログメッセージ が化ける (日本語)
cvs 信者なんだけどたまには、subversion 使おうと意気込んで、
ViewCVSセットアップしてた。が、 py-module がコンパイル通らず、
PHPで動く WebSVN を使うことにする。
設置と一通り動くところは簡単に出来るのだが、
ログメッセージが文字化け。(v1.61)
さくっと見てみると svn のコマンド実行するときに、
環境変数 LANG が設定されていないのが原因。
include/command.inc で、quoteCommand() の戻りを
return “LANG=ja;export LANG;”.$cmd;
にして、 config.inc で、
$config->setInputEncoding(”EUC-JP”);
にする
やたー、日本語出たーと思うのもつかの間、
登録しているファイル見ると文字化けする…。
登録ファイルの文字コードがSJISだから…。
つまりログメッセージはEUC・ファイルはSJISとややこしいことに。
登録ファイルの文字コード触るのはちょっと気色悪いので、
$config->setInputEncoding(”SJIS”);
にすることにして、ログメッセージを変換することにする。
include/svnlook.inc の、getLogDetails()で強制変換。
EUCのファイルをSJISと思い込んで読んでいるので、
$log["message"] = mb_convert_encoding( $output[3], “SJIS”, “EUC-JP”);
…
$log["message"] .= “\n”.mb_convert_encoding( $output[$pos], “SJIS”, “EUC-JP” );
として強制的に変換してやる。
今度こそ出来た~。ヽ(´ー`)ノ
# cache 配下に出来るファイルは compress が掛かってるんで、
普通に見ると文字化けしているように見える罠
zcat すべし。
トラックバック URL : http://nyanyan.to/archives/78/trackback
コメント (357)