PowerShell を使用して BOM なしで UTF-8 でファイルを書き込む 質問する

PowerShell を使用して BOM なしで UTF-8 でファイルを書き込む 質問する

Out-FileUTF-8 を使用する場合、BOM が強制されるようです:

$MyFile = Get-Content $MyPath
$MyFile | Out-File -Encoding "UTF8" $MyPath

PowerShell を使用して BOM なしの UTF-8 でファイルを書き込むにはどうすればよいですか?

2021年アップデート

PowerShell は、私がこの質問を書いた 10 年前と比べて少し変わりました。以下の複数の回答を確認してください。有益な情報が満載です。

ベストアンサー1

.NETの使用UTF8Encodingクラスを作成して$Falseコンストラクターに渡すと動作するようです:

$MyRawString = Get-Content -Raw $MyPath
$Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding $False
[System.IO.File]::WriteAllLines($MyPath, $MyRawString, $Utf8NoBomEncoding)

おすすめ記事