🐳

GitをPowershellで使った時に起こる文字化けを修正する

2024/04/22に公開

問題

Git を PowerShell で利用しようとすると、コミットメッセージが文字化けしてしまいます。

解決方法(一時的)

これは PowerShell で利用している文字コードが utf-8 でないことに起因しているので、以下のコードを実行することで utf-8 を利用するように設定できます。

chcp 65001

PowerShell のバージョンによっては以下のコードが有効です

[Console]::OutputEncoding = [System.Text.Encoding]::GetEncoding('utf-8')

ですが、PowerShell を起動するたびに文字コードは初期化されてしまうため、起動時に実行するよう設定しておくのが無難です。

解決方法

PowerShell 上で以下のコードを実行すると、起動時に読み込まれるプロファイルの位置がわかります。

$profile

この場所はそもそも該当のフォルダがない場合もありますが、フォルダを作成しファイル作成すればプロファイルとして読み込んでくれるようになります。
プロファイルの中に上記コードを書き込めば、PowerShell 起動時に自動的に実行されます。

プロファイルを読み込んでくれない場合

プロファイルとはいえ、本質的にはスクリプトの実行です。システムによってはスクリプトの実行が無効になっている場合があります。そのような場合は、PowerShell を管理者権限で実行し、スクリプト実行ポリシーを設定しましょう。

Set-ExecutionPolicy RemoteSigned

この例では、RemoteSignedに設定していますが、システムで保つべきセキュリティ状態が異なります。Microsoft による仕様[1]を確認し、適切な実行ポリシーを設定して下さい。

脚注
  1. ExecutionPolicy(https://learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.security/set-executionpolicy?view=powershell-7.4#-executionpolicy) ↩︎

Discussion