LoginSignup
30
15

More than 3 years have passed since last update.

日本語を含む PowerShell スクリプトの文字コード

Last updated at Posted at 2019-09-14

(この記事では、Windows PowerShell(5.1 以前: powershell.exe)を PowerShell と書きます。PowerShell Core(6.0 以降: pwsh.exe)とは異なるので注意。)

PowerShell スクリプトを UTF-8 で書いて PowerShell で動かそうと思ったら動かなかった。調べてみたら、VSCode と PowerShell でのファイルのエンコードの概要というページが参考になった。

PowerShell には文字コードの自動判別機能がない。また、実行時に文字コードを指定することもできない。ファイルに BOM(byte order mark: バイト順記号)があれば文字コードがわかるけれど、BOM がなければデフォルトの文字コードで読もうとする。デフォルトの文字コードは、日本語ロケールでは Shift-JIS。なので、BOM なし UTF-8 で書かれたファイルは読めない。

したがって、PowerShell が読める日本語のファイルは Shift-JIS か BOM 付きユニコードということになる。

ということは、メモ帳で書き出せる文字コードなら PowerShell が読める。メモ帳での表記は「ANSI」「Unicode」「Unicode big endian」「UTF-8」となっているけれど、実際にはそれぞれ Shift-JIS、UTF-16(リトルエンディアン)、UTF-16(ビッグエンディアン)、BOM 付き UTF-8。そのいずれかでスクリプトを書けば、PowerShell で実行できる。

30
15
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
30
15