ai-coding-mines목차GitHub

인코딩은 도구 경계마다 한 번씩 갈린다 (총론)

Windows · PowerShell

텍스트가 도구 경계를 넘을 때마다 인코딩 규칙이 바뀐다. 어느 쪽도 에러를 내지 않는다. 결과물만 조용히 깨진다.

경계증상
파일 → Get-ContentUTF-8을 949로 읽고 되써서 한글 자기파괴
파일 → powershell.exe 파서BOM 없으면 소스가 ANSI로 읽혀 리터럴 깨짐
셸 heredoc → 파이썬이모지 서러게이트 쌍 파손
PS → 네이티브 exe 인자큰따옴표 재파싱으로 인자 분할
코드 → 환경변수 키비ASCII 키가 안 먹거나 깨짐

원칙

  1. 경계는 파일로 넘긴다. 인라인 문자열로 대량 텍스트를 밀어넣지 않는다
  2. 비ASCII를 리터럴로 두지 않는다. 소스가 어떤 코드페이지로 읽힐지 보장되지 않으면 런타임 디코딩이나 로마자로 우회한다
  3. 넘긴 뒤 한 번 찍어 확인한다. 경계를 통과한 직후의 실물을 눈으로 본다