1
1

PowerShell で日本語が文字化けする

Last updated at Posted at 2024-07-24

概要

Windows11でPowershellを使用している際、Gitのコミットメッセージを日本語で書くと、コミット後にコミットメッセージが文字化けする現象に遭遇しました。

PowerShell
[main d2fb586] [update] 遨コ縺ョindex.js繧剃ス懈・
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 index.js

解決方法を探してみたところ、PowerShellの設定の問題だということがわかりました。

本稿では、PowerShell で日本語が文字化けする問題に対する解決方法の一つを紹介します。

著者の環境紹介(簡易)

  • WindowsOS: Windows 11
  • PowerShell: PowerShell 7.4.3
  • git version 2.45.1.windows.1

PowerShellでのバージョンの確認方法

  • OS のバージョンとビルド番号:winver
  • PowerShell のバージョン:$PSVersionTable
  • Git のバージョン:git --version

解決方法

1. PowerShell の文字コードを確認する

以下のコマンドを実行して、現在の文字コードを確認します。

PowerShell
[Console]::OutputEncoding

以下のような表示になっていたら、今回の方法で修正できる可能性が高いです。

PowerShell
EncodingName      : Japanese (Shift-JIS)
WebName           : shift_jis
HeaderName        : iso-2022-jp
BodyName          : iso-2022-jp
(etc...)

2. PowerShell の文字コードを UTF-8 に変更する

以下のコマンドを実行して、文字コードを UTF-8 に変更します。

PowerShell
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8

1.のコマンドを再度実行し、以下のようになっていれば成功です。

PowerShell
BodyName          : utf-8
EncodingName      : Unicode (UTF-8)
HeaderName        : utf-8
WebName           : utf-8
(etc...)

(3.) Git の設定を確認する

Git を使用する場合、念のため以下の設定になっていることを確認してください。

PowerShell
git config --global core.quotepath false
git config --global i18n.commitencoding utf-8

設定を永続化するには

PowerShell の設定は、一時的な変更です。
PowerShell を再起動すると、設定は元に戻ります。

PowerShell のプロファイルに上記のコマンドを追加することで、
PowerShell 起動時に自動的に文字コードを UTF-8 に設定できます。

備考

プロファイルパスを確認するには

プロファイルパスを確認するには、以下のコマンドを実行してください。

PowerShell
$PROFILE

プロファイルをエディタで開くには

プロファイルは、エディタで開くことができます。

Visual Studio Code(以下、VSCode)を使用すると、以下のコマンドで直接開くことができます。

PowerShell
code $PROFILE

他のエディタを使用している場合も、VSCodeと同じような手順でファイルを開けると思います。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1