UTF-8000: 무제한 길이 코드 유닛을 위한 인코딩 방식
UTF-8000: Unlimited UTF-8
Hacker NewsUTF-8000은 기존 UTF-8의 바이트 길이 제약을 극복하고, 이론적으로 무제한 크기의 코드를 인코딩할 수 있도록 확장된 문자 인코딩 방식입니다.
- 핵심은 하나의 코드 유닛 내에서 여러 개의 '시작 바이트'를 연속적으로 사용하여, 기존 UTF-8이 처리하기 어려웠던 초장문 코드를 안정적으로 표현하는 구조입니다.
- 이러한 확장된 구조는 데이터 스트림 디코딩 중 오류가 발생해도 위치를 정확히 파악하고 데이터를 복구할 수 있는 높은 수준의 견고성(Robustness)을 제공합니다.
- ASCII 코드는 기존과 동일하게 유지되며, 인코딩의 안전성을 위해 오버롱 방지 등의 '필수 콘텐츠 비트' 규칙이 엄격히 준수됩니다.
UTF-8000은 기존 UTF-8의 바이트 길이 제약을 극복하고, 이론적으로 무제한 크기의 코드를 인코딩할 수 있도록 확장된 문자 인코딩 방식이다. 이 기술의 핵심은 하나의 코드 유닛 내에서 여러 개의 '시작 바이트'를 연속적으로 사용하여 임의로 큰 코드 포인트를 표현하는 데 있다. 이러한 구조는 데이터 스트림 디코딩 중 오류가 발생하더라도 위치 파악과 복구에 도움을 주어 높은 견고성을 제공한다.
UTF-8000 코드 유닛은 '첫 바이트'와 그 뒤를 잇는 여러 개의 '시작 바이트' 및 '연속 바이트(Continuation Byte)'로 구성된다. 각 바이트는 자체 동기화 접두사(Self-Synchronization Prefix)를 가지며, 이를 통해 해당 바이트가 코드 유닛의 시작 부분인지 아니면 연속되는 부분이 명확히 구분된다. 특히, 여러 개의 시작 바이트 덕분에 기존 UTF-8이 제한했던 길이 이상의 코드를 인코딩할 수 있다.
이 방식은 기존 UTF-8과의 호환성을 유지하며, ASCII 코드는 `0xxxxxxx` 형태로 변경 없이 포함된다. 또한 인코딩의 안전성을 위해 '필수 콘텐츠 비트(Mandatory Content Bits)' 규칙이 엄격히 준수된다. 예를 들어, 2바이트 UTF-8000의 경우 오버롱 인코딩 방지를 위해 4개의 필수 콘텐츠 비트를 확인해야 하며, 이는 코드 유닛에 포함된 모든 내용 비트와는 별개로 검사되는 부분이다.