hg serve
で Mercurial の HTTPインタフェースが使えるということを聞いて、早速やってみたところ、日本語が文字化けしていました。Chrome でページソースを眺めると、diffstat で「更新ファイル数」とか「追加 xx行」とかの部分が化けているようです。この部分の文字エンコーディングは ShiftJIS になっているようでした。ただ、ページの言語を ShiftJIS に直したとしてもコミットメッセージなどは(日本語の場合には) UTF-8 で書いているので化けることは化けます。
ローカルで立ち上げたページには http://localhost:8000/help/config というヘルプページがあるのですが、これがまた日本語表示されてるっぽいけど文字化けしています。上記と同様です。ちなみに環境変数 LANG は "ja_JP.UTF-8" を指定しています。
ということで Mercurial のドキュメントを見てみると、どうやら
~/.hgrc
に "[web]" というセクションを作り、そこに "encoding = UTF-8" と入れることで文字エンコーディングを指定できるようです。早速試してみると文字化けが直りました。
--追記--
実はこれだけではだめっぽくて、全部 UTF-8 で動かすには環境変数 HGENCODING=UTF-8 を指定する必要があるようです。また、UTF-8 ファイル名を使いたい場合には fixutf8 エクステンションを組み込む必要があるようですが、3年前に更新が停止しているようです。
それから、HGENCODING の設定は、ロケール指定の "ja_JP" をつけるとエラーになりました。どうやら "UTF-8" のみでいいようです。
--追記の追記--
HGENCODING=UTF-8 すると、hg help の日本語表示が化けるようになってしまいました。
ちょっとこのあたり、デタラメを書いてる可能性もあるので、内容をちゃんと確認していく予定です。
0 件のコメント:
コメントを投稿