증상
UTF-8로 저장된 파일을 Get-Content로 읽어 가공한 뒤 되쓰면 한글이 자기파괴된다. 예외는 없다.
원인
PS 5.1의 Get-Content 기본 인코딩은 시스템 ANSI 코드페이지(한국어 Windows는 949)다. UTF-8 바이트를 949로 해석해 문자열로 만든 시점에서 이미 손상됐고, 되쓸 때 그 손상이 파일에 박힌다.
해법
-Encoding UTF8 명시New-Object System.Text.UTF8Encoding($false) + [IO.File]::WriteAllText (BOM 없이)Out-File/Set-Content의 기본 인코딩도 신뢰하지 않는다. 다른 도구가 읽을 파일이면 항상 명시한다.
검증
쓰기 후 다시 읽어 원본 문자열과 비교한다. 눈으로 콘솔 출력만 보면 콘솔 코드페이지가 한 번 더 개입해 판정이 흐려진다.