Out-File
UTF-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)