Git で日本語データを管理する際、文字化けが生じます。文字化けのまま、処理してもデータそのものに問題はないのですが、文字化けしていない方がいいですよね?
この記事では、文字化けを直すコードを紹介します。
日本語データの文字化け
コミットすると、日本語データは上記のように文字化けします。どうして文字化けが起きてしまうのでしょうか。
上記の画像は、コミットメッセージ「変更」が文字化けしています。
文字化けが起きる原因
- 文字エンコーディングの不一致
Git リポジトリ内のファイルは、通常、UTF-8エンコーディングを使用するが、開発者の環境や使用するエディタにより、別のエンコーディングが使われることがあります。これが原因で、文字化けが発生することがあります。 - コミットメッセージのエンコーディング
コミットメッセージも同様にエンコーディングの問題が起こることがあります。Git はデフォルトでコミットメッセージをUTF-8で扱うが、異なるエンコーディングでコミットメッセージを書くと、文字化けが生じることがあります。 - ターミナルやコンソールの設定
ターミナルやコンソールの文字エンコーディング設定が、Gitの期待するエンコーディングと一致していない場合も文字化けが発生します。特にWindowsのコマンドプロンプトやPowerShellでは、デフォルトでShift-JISが使用されるため、UTF-8エンコーディングのGitメッセージが正しく表示されないことがあります。
文字化けを修正する
下記の文字コードを使用してみましょう。
- [Console]::OutputEncoding = [System.Text.Encoding]::GetEncoding("utf-8")
- $ENV:LESSCHARSET="utf-8"
コミットメッセージが文字化けせずに表示されましたね!これで、OKです。
上記は、ターミナル上で文字化けを修正しましたが、Git の設定で文字化けを修正する方法もあります。
Git側で文字化け修正設定
スタートメニューから「GitBash」を開き、下記のコードを入力してください。
- git config --global i18n.commitEncoding UTF-8
- git config --global i18n.logOutputEncoding UTF-8
これで、文字化け問題が減ると思います。対応してみてください。
ただ、この文字化けは1回コミット→プッシュすると元に戻ります。毎回、文字化け修正するのは面倒ですよね…。なので、どうしても修正した内容を確認したいときは、ステージングする前に行ってください!