🖥️

CLIからgit コマンド実行時、日本語が数字で表示される対策

に公開

Tera Termでgit statusを実行したときに日本語ファイル名やメッセージが「数字(例: 30452 12354 …)」に化けるのは、主に文字コードとロケールの不一致が原因っぽいです。

原因1
Gitは日本語ファイル名を内部的にUTF-8で管理しています。
localeが正しく設定されていないと、UTF-8を正しく解釈できずに数字(Unicode)に化けます。

原因2
Tera Termの文字コード設定
デフォルトで「Shift_JIS」や「EUC-JP」などになっていると、UTF-8の出力が正しく表示されません。

対策するには下記のコマンドで、ロケールの設定を行えばよさそうです。
locateで現在のロケールを確認してください。
もしCやPOSIX などになっているならUTF-8に変更します。

日本語UTF-8に変更する場合は、下記の例となります。

sudo update-locale LANG=ja_JP.UTF-8
export LANG=ja_JP.UTF-8

起動時に毎回設定するのが億劫でしたら、.bashrcに設定コマンドを入れておきましょう。

また、下記のコマンドでgitの設定をUTF-8に統一します。

git config --global core.quotepath false
git config --global i18n.logOutputEncoding utf-8
git config --global i18n.commitEncoding utf-8

core.quotepath false
⇒git status で日本語ファイル名をエスケープせずUTF-8で出力する設定です。
i18n.*Encoding utf-8
⇒ログやコミットメッセージをUTF-8にする設定です。

Discussion