👻

PowerShellでgit add -pを実行した際の日本語文字化け問題の解決策

2024/03/08に公開

1. 問題の概要

  • PowerShellでgit add -pコマンドを実行すると、表示されるログ内の日本語が文字化けする
  • git diffコマンドでは日本語が正しく表示される
  • scoopでインストールしたGitを使用している

git diffの出力:

❯ git diff
diff --git a/README.md b/README.md
index d6747b5..f214e0b 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,4 @@
 # test dir
+
+これはテスト用のリポジトリです。
+

git add -pの出力:

❯ git add -p
diff --git a/README.md b/README.md
index d6747b5..f214e0b 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,4 @@
 # test dir
+
+縺薙l縺ッ繝・せ繝育畑縺ョ繝ェ繝昴ず繝医Μ縺ァ縺吶・[m
+
(1/1) Stage this hunk [y,n,q,a,d,e,?]?

2. 環境

  • オペレーティングシステム:Windows 11
  • PowerShellバージョン:7.4.1
  • Gitバージョン:2.44.0.windows.1 (scoopでインストール)

3. 解決手順

  1. PowerShellを開く
  2. 以下のコマンドを実行してPowerShellのプロファイルファイルを編集する
    notepad $PROFILE
    
  3. プロファイルファイルに以下の行を追加する
    [Console]::OutputEncoding = [System.Text.Encoding]::GetEncoding("utf-8")
    $ENV:LESSCHARSET = "utf-8"
    
  4. PowerShellを閉じて再度開く

文字化けが解消されたことを確認

❯ git add -p
diff --git a/README.md b/README.md
index d6747b5..f214e0b 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,4 @@
 # test dir
+
+これはテスト用のリポジトリです。
+
(1/1) Stage this hunk [y,n,q,a,d,e,?]?

4. 解決手順の説明

  • PowerShellのプロファイルファイルに設定を追加することで、PowerShellの出力エンコーディングをUTF-8に変更します。
  • $ENV:LESSCHARSETを設定することで、lessコマンドが使用する文字セットをUTF-8に変更します。
  • これらの設定により、git add -pコマンドの出力が正しく表示されるようになります。

Discussion