Source Encoding

Source Encoding

소스 인코딩에 대한 규칙을 살펴볼게요. Zig는 이 부분을 아주 엄격하게 관리해서, 다른 도구들과 협업할 때도 안심하고 쓸 수 있어요.

출처: Zig Documentation

본문

Zig 소스 코드는 UTF-8로 인코딩됩니다. 잘못된 UTF-8 바이트 시퀀스는 어디에서도 허용되지 않아요.

다음 코드 포인트들은 Comments(주석) 안에서조차 절대 허용되지 않습니다.

  • ASCII 제어 문자 — 단, U+000a (LF, 줄바꿈)는 제외: U+0000...U+0009, U+000b...U+001f, U+007f.
  • 비-ASCII 유니코드 줄바꿈: U+0085 (NEL), U+2028 (LS), U+2029 (PS).
  • 바이트 순서 표시(BOM): U+FEFF.

LF(바이트 값 0x0a, 코드 포인트 U+000a, '\n')는 Zig 소스 코드에서 줄 종결자(라인 터미네이터)입니다. 이 바이트 값은 파일의 마지막 줄을 포함해 모든 줄을 끝냅니다.

이런 보수적인 규칙 덕분에, 이미 검증된 Zig 소스 코드를 읽는 서드파티 도구는 단순하게 가정할 수 있습니다. 예를 들어 '\n'을 기준으로 줄을 단순 분리하는 식이죠. 다만 zig fmt 같은 도구는 바이트 순서 표시(BOM)나 캐리지 리턴을 제거하는 등, 잘못된 소스 인코딩을 올바른 인코딩으로 변환해 주는 편의 기능을 제공합니다.

더 알아보기