2016年12月11日日曜日

Git bash / ConEmu で日本語が表示されなかったけど単に locale の問題だった話

相変わらず基本 T/O なのですが、恥を忍んでもうちょい書きます。
もはやこのブログは、自らの知識のなさと頭の回転の遅さを
嘆く場所と化しております。

さて。最近 Windows でちょっと開発しなくちゃいけなくなりまして。
Chocolatey で Git for Windows (v2.11.0) とか
ConEmu (v16.12.6.0)とかを入れてみたんです。
それで Git bash を直接、あるいは ConEmu を通して起動したんですが、
どうも日本語がおかしい。
それも、?????? という文字化けでも、
□□□ というようなトウフ化でもなく、

''$'\346\227\245\346\234\254\350\252\236''.txt'

といったような表示のされ方をしていました
(上記は 日本語.txt というファイル名の例です)。
どうも、UTF-8の数値コードといいますか、
バイト表現がそのまま数字で出ている感じでした。

文字化けやトウフの対処は検索ですぐ見つかったのですが
(例えば、lsコマンドは ls  --show-control-chars としろとか、
 使うフォントを日本語対応のものに変えろとか)
私のような症状はみつからず。

で、しばらく試行錯誤してからようやく気付きました。
これ単に locale がUTF-8に対応していないだけなのでは・・・?

というわけで locale コマンドをたたいてみると、

$ locale
LANG=C
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_ALL=

ですよねー。
というわけで ConEmu の場合、
export LC_ALL=ja_JP.UTF-8
と打って locale 設定を上書きする形で無事解決。

Git bash だとそれだけだとなんかうまく動かなかったような気がする?ので、
タイトルバーを右クリックして現れたメニューから Option 画面を開き、
左のリストから「Text」 を選んで、
Locale と Character set を ja_JP / UTF-8 にし、
起動しなおしたら直りました。

最初に疑うべきところを疑わなかった私が悪いっていうことで、
皆さんは私のように時間を無駄にしないようにしていただければと思います。