Dockerコンテナ内でGitを使っている際に、日本語コミットメッセージが文字化けする問題に相対した際の解決方法をまとめました。以下の手順を実行することで解決できます。
問題の現象
- Gitで日本語コミットメッセージを使用すると文字化けする。
-
git log
の出力が、UTF-8の文字化け表示になる。 - Nanoを使ったコミットメッセージで文字化けが起こる。
解決手順
正しいロケールを設定
まず、Dockerコンテナ内のロケールを確認します。
echo $LANG
正常な状態では、次のように en_US.UTF-8
や ja_JP.UTF-8
が返されます。
その他の値が返された場合は、以下のようにロケールをUTF-8に設定しましょう。
export LANG=C.UTF-8
これで一時的にロケールがUTF-8に設定されます。
この状態で、日本語コミットメッセージを再度試してください。
git commit --allow-empty -m "テスト用の日本語メッセージ"
git log
これで文字化けが解決されていることを確認しましょう。
永久的な設定
Dockerコンテナを再起動しても設定が保存されるようにするため、次の手順で .bashrc
に追記します。
-
.bashrc
に追記echo 'export LANG=C.UTF-8' >> ~/.bashrc
-
設定を反映
source ~/.bashrc
これで、次回コンテナを再起動しても文字化けが発生しなくなります。
Nanoでの文字化け問題の解決
Gitコミット時にNanoが開いた際、日本語が文字化けする場合は、Nano自身でUTF-8を正しく扱えていないことが原因です。下記手順で解決できます。
Nanoのアップデート
Nanoが古いバージョンの場合、UTF-8のサポートが不完全なため、アップデートが必要です。
apt update && apt install -y nano
Gitのデフォルトエディタを変更
Nanoでの問題が解決しない場合、Gitのデフォルトエディタを vim
や code
に変更することで解決できます。
Vimを使う場合
-
Vimのインストール
apt update && apt install -y vim
-
GitのエディタをVimに設定
git config --global core.editor "vim"
VSCodeを使う場合
git config --global core.editor "code --wait"
おわりに
Dockerコンテナ内で日本語コミットメッセージが文字化けする問題は、ロケールの設定やエディタの変更で解決できます。同様の問題に相対している方の参考になれば幸いです。