はじめに
Windows 11 になってから Powershell が文字化けするようになってしまったので直しました。メモを残しておきます。
文字化けの原因
文字化けした場合は "日本語" というマルチバイト文字が原因となっている場合が多いです。
- 「縺瑚ェュ繧」のような化け方をしている場合は文字コードに問題がないか確認してください
- 「□□:□□□」のような化け方をしている場合はフォントに問題はないか確認してください
文字コードに問題がある場合の対処
文字コードの設定がおかしいと、うまく文字をエンコードできずに文字化けしてしまいます。適切な文字コードに変更することで問題を解決できる可能性があります。
文字コードを確認する方法
Powershell で chcp
コマンドを使うことで文字コードを変更できます。
現在の文字コードを確認するには chcp
のみで実行します。
> chcp 現在のコード ページ: 437
ちなみに、コードページ 437 は、初代IBM PC(パーソナルコンピュータ)の文字セットだそうです。Windows のコードページ一覧はこちらにまとまっていました。
また、chcp
は CHangeCodePage の略だそうです。
参考:【Windows】PowerShellやcmdで日本語が文字化けする際の対応
文字コードを変更する方法
UTF-8 に変更したい場合は 65001
に、Shift_JIS に変更したい場合は 932
としてください。ここでは、UTF-8 に変更する場合を例に手順を示します。
- エクスプローラーから
%userprofile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows PowerShell
を開く。 - プロパティを開く
- リンク先に
-NoExit -Command "chcp 65001"
を追記する(全体としては以下のようになる)
%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -NoExit -Command "chcp 65001"
参考:PowerShell起動時、文字コードをUTF-8に変える方法 - Qiita
フォントに問題がある場合の対処
欧文フォントなど、ひらがなや漢字を含まないフォントで日本語を出力しようとするといわゆる豆腐(□)がたくさん出現することになります。この場合は、日本語対応のフォントに変更することを検討してください。
フォントを変更する方法
- Powershellを起動する
- メニューからプロパティを開く
- フォントタブに遷移
- フォントを
MS ゴシック
などの日本語対応フォントに変更する - OK をクリックして変更を反映する
※次回起動時も設定変更後の状態で起動します。
参考:PowerShellの文字化け対策 - Opensourcetechブログ
役に立ったなという方はビール1杯奢ってください。