Help us understand the problem. What is going on with this article?

日本語を含む 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 で実行できる。

ousaan
翻訳会社勤務の翻訳家兼エンジニア。個人のウェブサイトが時代遅れになってしまったので改修中。
https://www.ousaan.com
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
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  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
ユーザーは見つかりませんでした