VSCodeでPowerShellスクリプトの文字化けを解決する方法
Visual Studio Code(VSCode)でPowerShellスクリプトを作成・実行している場合、
日本語を扱った際に文字化けすることがあります。
具体的にはデフォルトでインストールされている「Windows PowerShell」を使用していて、
文字コードが「UTF-8」(BOMなし)の場合に文字化けします。
この文字化けの解決方法は大きく分けて2つあります。
- 文字コードをUTF-8(BOMあり)に変更する
- 「PowerShell Core」をインストールする
手っ取り早いのは1番目の方法ですが、 文字コードのBOMあり、BOMなしの煩わしさから解放されたいなら 2番目の方法がおすすめです。
解決方法1. 文字コードをUTF-8(BOMあり)に変更する
「Windows PowerShell」のデフォルト文字コードはUTF-8(BOMあり)です。 ですからBOMなしのUTF-8になっている場合は文字化けします。
VScodeで文字コードを変更するには、 VSCode画面右下に表示されている文字コード部分をクリック。
VSCode画面上部に表示されている「エンコード付きで保存」をクリック。
「UTF-8 with BOM utf8bom」を選択。
これで文字コードがUTF-8(BOMあり)に変更されます。 この状態でPowerShellスクリプトを実行すると日本語も正常に表示されます。
解決方法2. 「PowerShell Core」をインストールする
もう一つの解決方法は「PowerShell Core」をインストールすることです。 「PowerShell Core」はPowerShellの新しいエディションで、 2018年からリリースされています。 特徴としてクロスプラットフォーム対応なのでWindows以外のOSでも動かせます。
従来の「Windows PowerShell」のデフォルト文字コードはUTF-8(BOMあり)ですが、
「PowerShell Core」のデフォルト文字コードはUTF-8(BOMなし)です。
ですから「PowerShell Core」をインストールして使用すると、
文字コードをBOMありに変更する必要がなくなります。
どのみち今後は「Windows PowerShell」から「PowerShell Core」への 移行が進みますし、BOMあり・BOMなしのわずらわしさから解放されたいなら 「PowerShell Core」をインストールすることをお勧めします。 「Windows PowerShell」と「PowerShell Core」は別々のソフトウェアなので インストールしても上書きされるわけではなく、共存します。
インストール方法
「PowerShell Core」をインストールするには 「Microsoft Store」から「powershell」と入力して インストールする方法が一番簡単です。 (私の場合は5分程度でインストール完了しました)
他の方法でインストールする場合は以下の公式サイト情報を参考にしてください。
PowerShell を Windows、Linux、macOS にインストールする - PowerShell | Microsoft Docs
PowerShellのバージョンとエディションの確認方法
VScodeのPowerShellコンソール上で「$PSVersionTable」 と入力してEnterキーを押してください。 下のようにバージョンとエディションが表示されます。 「PowerShell Core」の場合は 「PSEdition」の値が「Core」と表示されます。
PS D:\test\powershell> $PSVersionTable Name Value ---- ----- PSVersion 7.2.1 PSEdition Core ....
「Windows PowerShell」の場合は「PSEdition」の値が 「Desktop」と表示されます。
PS D:\test\powershell> $PSVersionTable Name Value ---- ----- PSVersion 5.1.19041.1320 PSEdition Desktop