증상
스크립트를 UTF-8(BOM 없음)로 저장했더니 powershell.exe 실행 시 소스에 박은 한글 문자열이 깨진 채 출력된다. 주석 속 한글은 무해하고, 죽는 건 출력 문자열과 한글 경로다.
원인
BOM이 없으면 PS 5.1 파서가 스크립트 소스 자체를 시스템 ANSI(949)로 읽는다. 앞 항목이 *데이터 파일 I/O* 문제라면, 이건 *스크립트 소스*가 파싱되는 단계의 문제다. 둘은 다른 층이다.
해법
BOM을 붙이면 해결되지만 "BOM 없이 저장" 규율과 충돌한다. 규율을 지켜야 하면:
```powershell
function U($b64) { [Text.Encoding]::UTF8.GetString([Convert]::FromBase64String($b64)) }
```
$env:USERPROFILE 등으로 조립한다.검증
LC_ALL=C grep -n '[^ -~]' script.ps1 — 출력이 없으면 순수 ASCII다.