PowerShell が文字化けする時の直し方(UTF-8 / Shift-JIS 対応)

  • URLをコピーしました!

PowerShell で文字化けが起きる場合は、原因のほとんどが「文字コード設定の不一致」です。結論としては、PowerShell の出力エンコードを UTF-8 に統一し、Shift-JIS のファイルは読み書き時に明示的に指定することで解決できます。さらに、コンソールのコードページとフォントを適切に設定すれば、日本語の文字化けは安定して防げます。以下で、原因から具体的な修正手順まで順番に解説します。

目次

PowerShell が文字化けする主な原因

PowerShell の文字化けは、PowerShell 自体の不具合ではなく、文字コードのズレによって発生します。PowerShell は内部では Unicode を扱っていますが、コンソール表示やファイル入出力では別のエンコードが使われるため、設定が揃っていないと日本語が崩れます。

主な原因は次の通りです。

原因内容
出力エンコードの不一致UTF-8 と Shift-JIS が混在している
コンソールのコードページWindows が CP932(Shift-JIS)になっている
フォントの問題日本語非対応フォントを使用している
ファイルの保存形式スクリプトやCSVの文字コードが統一されていない

特に「UTF-8 のファイルを Shift-JIS 環境で表示する」場合に文字化けが起きやすくなります。

PowerShell の出力を UTF-8 に統一する方法

最も安定する対処法は、PowerShell の出力を UTF-8 に固定することです。まず現在の設定を確認します。

UTF-8 に変更するには次を実行します。

さらに、Out-File の既定エンコードも UTF-8 にします。

毎回手動で設定しないように、PowerShell プロファイルへ登録します。

開いたファイルに以下を追加します。

これで PowerShell 起動時から UTF-8 が自動適用されます。

Shift-JIS ファイルを正しく扱う方法

業務環境では Shift-JIS の CSV やテキストを扱うことがあります。その場合は、読み込みと保存の際にエンコードを明示的に指定します。

Shift-JIS で読み込む場合です。

Shift-JIS で保存する場合は次を使用します。

エンコードを省略すると既定値が使われ、環境によっては文字化けの原因になります。Shift-JIS を扱う場合は必ず指定します。

コンソールのコードページを UTF-8 に変更する

Windows の既定コードページが Shift-JIS のままだと、UTF-8 出力が崩れることがあります。現在のコードページは次で確認できます。

UTF-8 に変更するには以下を実行します。

ただし、PowerShell 7 以降や Windows Terminal を使用している場合は、通常この設定は不要です。

フォント設定を見直す

文字コードが正しくても、フォントが日本語非対応だと表示が崩れます。次のフォントを使用すると安定します。

  • Cascadia Mono
  • Consolas
  • メイリオ
  • 游ゴシック

Windows Terminal を使う場合は、設定画面からプロファイルごとにフォントを変更できます。

ターミナルでフォント設定を見直す

UTF-8 と Shift-JIS を混在させない運用ルール

実務では「混在しないこと」が最も重要です。次のルールを決めるとトラブルが減ります。

  • 新規スクリプトは UTF-8 で統一する
  • 外部システム連携のみ Shift-JIS を使用する
  • ファイル入出力では必ず -Encoding を指定する
  • エディタの保存形式を UTF-8 に固定する

特に CSV 処理では、Export-Csv や Import-Csv のエンコード指定を忘れないようにします。

よくある質問(Q & A)

UTF-8 にしても文字化けが直らないのはなぜですか?

コンソールのコードページやフォントが原因の可能性があります。Windows Terminal の使用と UTF-8 設定を確認してください。

PowerShell 5 と PowerShell 7 で違いはありますか?

PowerShell 7 は UTF-8 が標準のため、文字化けが起きにくくなっています。可能であれば 7 の利用をおすすめします。

CSV だけ文字化けするのはなぜですか?

Export-Csv の既定エンコードが環境依存だからです。-Encoding utf8 または Shift_JIS を明示してください。

まとめ

PowerShell の文字化けは、文字コード設定の不一致が原因です。出力を UTF-8 に統一し、Shift-JIS ファイルは明示的に指定することで解決できます。さらに、コードページとフォントを適切に設定すれば、日本語表示は安定します。最も重要なのは、UTF-8 を標準にし、エンコードを省略しない運用を徹底することです。

よかったらシェアしてね!
  • URLをコピーしました!
0 0
Article Rating
申し込む
注目する
guest
0 コメント一覧
最も古い
最新 高評価
インラインフィードバック
すべてのコメントを見る
目次
0
あなたの考えが大好きです、コメントしてください。x