hg serveで日本語が化けた件。

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 件のコメント:

コメントを投稿

Vimの補完プラグインをインストール。その4

Vimの補完プラグインをインストール。その3 で、 ddc-tabnine が使えそうです、などと書いたのですが、早速やってみました。 まず、tabnineのバイナリを用意しないといけません。がどうにもTabNineのサイトがわかりにくいので、 tabnine-nvim にあるダ...