PowerShell #9:スクリプトの日本語文字化けを回避するには


現象

https://codezine.jp/article/detail/2811?p=5
上記サイトの例を sample1.ps1 としてスクリプトに保存した。

このスクリプトを "./sample1.ps1" として実行すると文字化けが発生してエラーとなってしまう。
PS D:\TEMP\memo\powershell> ./sample1.ps1
発生場所 D:\TEMP\memo\powershell\sample1.ps1:3 文字:3
+   "萓句、也匱逕・
+   ~~~~~~~~
文字列に終端記号 " がありません。
発生場所 D:\TEMP\memo\powershell\sample1.ps1:2 文字:1
+ {
+ ~
ステートメント ブロックまたは型定義に終わりの '}' が存在しません。
    + CategoryInfo          : ParserError: (:) [], ParseException
    + FullyQualifiedErrorId : TerminatorExpectedAtEndOfString

原因と対処

PowerShellスクリプトファイルの文字コードは "UTF-8" ではなく "UTF-8 with BOM" である。
"UTF-8 with BOM" で保存したところ正常に動作した。
※ ↓ 以下サンプルは "0で徐算しようとしました"を発生させるスクリプトなのでエラーが発生して正解。
PS D:\TEMP\memo\powershell> ./sample1.ps1
例外発生
0 で除算しようとしました。
発生場所 D:\TEMP\memo\powershell\sample1.ps1:5 文字:1
+ 1/$Null
+ ~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], RuntimeException
    + FullyQualifiedErrorId : RuntimeException


PowerShell

0 件のコメント:

その他の記事