Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
9
Help us understand the problem. What is going on with this article?

More than 1 year has passed since last update.

@ousaan

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

(この記事では、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 で実行できる。

9
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
9
Help us understand the problem. What is going on with this article?