WindowsPowerShellのOut-Fileコマンドレットで下記のようにエンコーディングをUTF8を指定してファイル出力した場合。
BOM付きUTF8でファイルが出力されます。
# UTF8-BOM CRLF
@("Hello World","Foo Bar") | Out-File -FilePath c:\temp\utf8-bom-crlf.txt -Encoding utf8
今回、WindowsPowerShellでコマンドの処理結果をBOMLessかつ改行コードLFでファイルを出力したいケースがあったので方法をメモ。
# UTF8-BOMLess LF
@("Hello World","Foo Bar") | %{ $_+"`n" } | ForEach-Object{ [Text.Encoding]::UTF8.GetBytes($_) } | Set-Content -Encoding Byte -Path c:\temp\utf8-bomless-lf.txt

