コードエディターとして人気のある「Visual Studio Code」でPowerShellのスクリプト(拡張子.ps1)を実行する際に、日本語が文字化けする際の対処法を備忘録的に投稿します。
変数に日本語を代入した場合に文字化け
Visual Studio CodeでPowerShellをデバッグするには、拡張機能「PowerShell」を使うと簡単になります。詳細な手順は別記事をご覧ください。
変数の値に日本語を使った場合に実際には。次のようなエラー画面が表示されます。
$str = "あいうえお"
上記のように簡単なスクリプトでも英文字の場合は実行されますが、日本語を変数に代入するように書き換えてもエラーになります。
原因は文字コード
エラーになる原因は、文字コードです。拡張子 .ps1 をPowerShellで実行する場合、UTF-8 with BOMである必要があります。
これに対して、VSCodeでテキストファイルを保存する場合の既定値はUTF-8なので、文字化けが発生する原因になります。
VSCodeでPowerShellのスクリプトファイルを保存する際に「BOM付きUTF-8」を選ぶことで解決します。
1. VSCでPowerShellスクリプト(拡張子.ps1)ファイルを作ります。
$str = "あいうえお"
2. ステータスバーの[UTF-8]部分(画像の赤枠部分)をクリックします。
3. 表示された[アクションの選択]一覧から[エンコード付きで保存]をクリックします。
4.[保存時のファイルのエンコードを選択]一覧から[UTF-8 with BOM]をクリックします。
5. ファイルを保存します。
6.[PowerShell]ターミナルで編集したスクリプトファイル(.ps1)を実行します。
7. エラーが表示されなくなります。
まとめ
VSCodeでPowerShellのスクリプトファイル(拡張子 .ps1)を実行する際に、エラー表示が文字化けしたりする場合には、保存時のフォーマットに問題があります。
PowerShellの実行スクリプト内で日本語を変数に代入したりしている場合には、保存時のエンコードとして[UTF-8 with BOM]を選んでおく必要があります。
スポンサーリンク
最後までご覧いただき、ありがとうございます。