2012-11-05 5 views
1

이 포럼에서는 BOM없이 UTF-8로 변환 할 수있는 몇 가지 훌륭한 솔루션을 보았습니다. Powershell이나 재귀 적으로 비슷한 것을 사용하여 일련의 파일을 변환 할 수 있어야합니다.PowerShell을 사용하여 BOM없이 BOM없이 파일을 쓸 수 있습니다.

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) 
    } 
} 

답변

1

당신은 Get-Content에 인코딩을 제공 할 수

Get-Content $i.FullName -Encoding UTF8 
+0

경우는 어떻게 내가 인코딩을 모른다. 이미 UTF-8로 인코딩 된 파일이 몇 개있을 수 있습니다. 첫 번째 패스의 대다수는 ANSI (Windows)입니다. – Davin