【PowerShell】メモ帳スクリプトファイル実行時文字化け解消方法

その他
この記事は約3分で読めます。

メモ帳で作成したスクリプトファイル(.ps1)PowerShellから実行すると、文字化けエラーになります。

これは、PowerShellとメモ帳で作成したファイルの文字コードが合っていないからです。

メモ帳でスクリプトファイルを作成すると、デフォルトでは文字コード[UTF-8](BOM無し)で保存されます。

そのため、保存時に[UTF-8(BOM付き)]を選択することで、文字化けエラーは解消します。

 

 

なぜBOM無しだと文字化けになるのか?

 メモ帳で作成したスクリプトファイル([UTF-8](BOM無し))PowerShellで実行すると、なぜ文字化けになるのか?

今回とても参考になった、PowerShellの文字コードとBOMについての記事です↓

PowerShellの文字コードについて解説!文字化けで困らないための対処法 | テックマガジン from FEnetインフラ

 

上記の記事から、脳みそがシンプルな私が要約し、文字コードの歴史と今回の文字化け問題と繋げたのが以下。間違っていたらすみません。

① 昔の文字コードUS-ASCII
  →英語圏のみのため、あちらこちらで文字化け発生

② 全世界対応のUnicode誕生
→全世界の文字に番号つけただけ

③ Unicodeベースの文字コードUTF-8(BOM付き)誕生
  →BOM(数バイトの符号)でUnicodeと判断する

④ UTF-8BOM無し)が主流になる
→メモ帳での保存はデフォルトがBOM無しとなる

→PowerShellUnicodeなのでBOM無しだと文字化け発生

 

こんな感じでなんとなく理解しました。

 

 

文字化けを解消する手順

 まずは文字化けするパターンです。

メモ帳でスクリプトファイルを作成し、そのまま保存します。

PowerShellから実行すると、日本語が文字化けします。メモ帳ではデフォルトで[UTF-8]BOM無し)で保存されるからです。

 

次に、メモ帳でスクリプトファイルを、文字コード[UTF-8(BOM付き)]で保存します。

 

PowerShellから実行すると、文字化けすることなく実行できました。

 

まとめ

今回はPowerShellの勉強中にハマったことを備忘録として書きました。誰かのお役に立てればうれしいです。

 

PowerShellのこんな記事も人気ですので良ければ見てみてください↓

PowerShellの実行ポリシーとは?ポリシーを変更する方法

PowerShellの実行ポリシーとは?ポリシーを変更する方法
PowerShellのスクリプトファイル(.ps1)を実行する場合、既定ではスクリプト実行が抑止されています。これは、実行ポリシーによるもので、危険なスクリプトの実行からコンピューターを守るために設定されています。そのため、スクリプトを実行...

PowerShellのコマンド一覧とコマンドレットの詳細確認方法

PowerShellのコマンド一覧とコマンドレットの詳細確認方法
「PowerShellでファイル操作やWindowsの設定をしたいけど、どのコマンドを使用したらいいかわからない。」 「コマンドレットの使い方を忘れてしまった。」 など、コマンドを確認したいことはありませんか? PowerShellでやりた...