我在这个论坛上看到了几个很棒的解决方案,可以转换为没有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)
}
}
答案 0 :(得分:1)
您可以为Get-Content
提供编码:
Get-Content $i.FullName -Encoding UTF8