背景
- PowerShellからUTF-8としてコンパイルされたexeを実行すると出力の日本語文字が文字化けする
- もともとコンソールでの表示に使われる文字セットはShift-JISのため、これをUTF-8にしたい
やり方
こいつをたたけばセッションを閉じるまでは出力がUTF-8になる
[Console]::OutputEncoding = [System.Text.Encoding]::GetEncoding('utf-8')
PowerShell 5.1、およびPowerShell 7.xで動作を確認した
プロファイルに記載することで起動時に自動で実行することもできる
プロファイルについて - PowerShell | Microsoft Learn
参考
PowerShell 7のコードページと$OutputEncodingと[Console]::OutputEncodingについて - nislandのブログ