널 문자(Null Character)는 문자 인코딩에서 값이 0(영)인 제어 문자를 말한다. ASCII 및 유니코드(UTF-8, UTF-16 등)를 비롯한 대부분의 문자 집합에서 코드 포인트 U+0000에 해당한다. 흔히 NUL로 약칭하며, 프로그래밍 언어에서는 문자 리터럴 \0 또는 \x00 등으로 표현된다.
주요 용도와 특징
- 문자열 종료 표시: C, C++ 등 여러 프로그래밍 언어에서 널 문자는 문자열의 끝을 나타내는 종단 문자(String Terminator)로 사용된다. 이를 '널 종료 문자열(Null-terminated string)' 방식이라 한다.
- 초기화 및 패딩: 메모리 영역을 0으로 초기화하거나, 고정 길이 레코드에서 사용하지 않는 부분을 채우는 패딩(Padding) 용도로 쓰인다.
- 장치 제어: 초기 텔레타입 기계나 직렬 통신에서 장치를 유휴 상태(Idle)로 두거나, 종이 테이프에서 구멍이 뚫리지 않은 빈 공간을 나타내는 용도로 사용되었다.
주의 사항
널 문자는 출력 가능한 문자가 아니므로 화면에는 일반적으로 아무것도 표시되지 않거나(공백), 폰트에 따라 제어 문자 표시 기호(␀ 등)로 나타난다. 문자열 처리 시 버퍼 오버플로(Buffer Overflow)나 널 문자 주입(Null Byte Injection) 등 보안 취약점의 원인이 될 수 있으므로 주의 깊은 처리가 필요하다.