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