1

我在这个论坛上看到了几个很棒的解决方案,可以在没有 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)
    }
}
4

1 回答 1

1

您可以提供编码Get-Content

Get-Content $i.FullName -Encoding UTF8
于 2012-11-05T14:34:33.800 回答