윈도우에서 문서의 인코딩 변경하기

파워쉘에서 윈도우의 내부 기능을 사용하여 변경하는 방법이다.
서브폴더를 포함한 특정 파일유형을 모두 찾아서 변환해 준다.

# 변환할 인코딩 설정 (EUC-KR = Code Page 949)
#$sourceEncoding = [System.Text.Encoding]::GetEncoding(949)
$sourceEncoding = [System.Text.Encoding]::Unicode
$targetEncoding = [System.Text.Encoding]::UTF8

# 검색할 확장자들
#$extensions = @("*.c", "*.cpp", "*.h", "*.hpp")
$extensions = @("*.xml")

# 현재 디렉토리 및 하위 폴더 탐색
foreach ($ext in $extensions) {
    Get-ChildItem -Recurse -Filter $ext | ForEach-Object {
        Write-Host "변환 중: $($_.FullName)"
        try {
            $content = [System.IO.File]::ReadAllText($_.FullName, $sourceEncoding)
            [System.IO.File]::WriteAllText($_.FullName, $content, $targetEncoding)
        } catch {
            Write-Warning "변환 실패: $($_.FullName) - $_"
        }
    }
}

위의 예제는 Unicode를 UTF-8 로 변환한다. 만약 EUC-KR 또는 CP949를 UTF-8 로 변경하고자 한다면 2번째 행의 코멘트를 제거하고 3번째를 코멘트롤 막으면 된다.

변환할 확장자를 바꾸려면 7번, 8번행을 참고한다.

This entry was posted in 미분류. Bookmark the permalink.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다