我在这个论坛上看到了几个很棒的解决方案,可以在没有 BOM 的情况下转换为 UTF-8。我需要能够使用 powershell 或类似的递归方式转换一系列文件。
如果我采用 UTF-8 文档并将其转换为 UTF-8,则字符将被双重编码。有没有办法防止这种行为或检测文件是否已经是没有 BOM 的 UTF-8?
foreach($i in ls -recurse -filter "*.*") {
if (
$i.Extension.ToLower() -eq ".html" -or
$i.Extension.ToLower() -eq ".htm" -or
$i.Extension.ToLower() -eq ".php" -or
$i.Extension.ToLower() -eq ".txt"
) {
$MyFile = Get-Content $i.fullname
[System.IO.File]::WriteAllLines($i.fullname, $MyFile)
}
}