PowerShell 技能连载 - 从 Unicode 文件中移除 BOM

BOM(字节顺序标记)是在某些 Unicode 编码的文本文件特有的字节顺序。如果您收到一个包含了 BOM 的文件,而要处理它的其它系统并不支持 BOM,那么以下是如何用 PowerShell 移除这类文件中的 BOM 的方法:

1
2
3
4
5
6
function Remove-BomFromFile ($OldPath, $NewPath)
{
$Content = Get-Content $OldPath -Raw
$Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding $False
[IO.File]::WriteAllLines($NewPath, $Content, $Utf8NoBomEncoding)
}

现在要获取一个文件的 BOM 并将它转为一个无 BOM 的文件就很方便了:

1
2
3
$Path = "$env:temp\export.csv"
$NewPath = "$env:temp\export_new.csv"
Remove-BomFromFile -OldPath $Path -NewPath $NewPath
评论