UTF-8000: 무제한 UTF-8

2 hours ago 2

UTF-8000은 ASCII와 UTF-8을 포함하면서 임의 크기의 정수를 인코딩하도록 확장한 독립 제안으로, Unicode Consortium이 승인하거나 대표하는 표준은 아님 UTF-8의 선두 비트를 자기 동기화 비트와 길이 표시 비트로 분리하고, 길이 표시 비트를 연속 바이트에 걸쳐 배치해 인코딩 길이 제한을 없앰 자기 동기화, 길이 자체 식별, strcmp 정렬 순서를 유지하며, 새 예외 없이 ASCII와 2바이트 UTF-8의 기존 예외만 이어받음 여러 바이트로 이루어진 인코딩은 n바이트에 5n+1개 데이터 비트를 저장하며, 데이터 비율은 길이가 늘수록 62.5%에 수렴함 당장 필요한 확장은 아니라는 평가도 있으며, UCS-X와의 비교에서는 단순성과 대규모 인코딩 효율 사이의 절충이 드러남 제안의 범위와 확장 원리 UTF-8000, 또는 UTF-8K는 ASCII ⊆ UTF-8 ⊆ UTF-8000 관계를 목표로 하는 실험적 프로젝트임 현재 UTF-8의 4바이트 제한을 넘어 5, 6, 7바이트뿐 아니라 임의 길이까지 확장함 현재 UTF-8은 RFC 3629, 과거 6바이트 형식은 RFC 2044와 RFC 2279에 해당함 핵심은 UTF-8의 선두 비트를 자기 동기화(self-synchronization) 와 길이 자체 식별(self-punctuation) 이라는 독립 기능으로 나누는 것임 ASCII 바이트는 0, 여러 바이트 인코딩의 첫 바이트는 11, 이후 연속 바이트는 10으로 시작함 n바이트 인코딩의 길이는 n-2개의 1과 종결 비트 0으로 표시함 길이 표시 비트가 첫 바이트에 들어가지 않으면 연속 바이트의 10 접두부를 제외한 공간으로 이어짐 7바이트 인코딩은 11111110으로 시작하고, 8바이트부터는 11111111 100xxxxx …처럼 다음 바이트에도 길이 표시 비트가 들어감 9바이트는 11111111 1010xxxx …, 10바이트는 11111111 10110xxx …로 시작함 22바이트 예시는 11111111 10111111 10111111 10110xxx …이며, 별도 예외가 아니라 같은 규칙의 반복임 문서의 첫 바이트(first byte) 와 시작 바이트(start byte) 는 다른 개념임 첫 바이트는 인코딩마다 하나지만, 길이 표시 비트를 담는 시작 바이트는 여러 개일 수 있음 데이터 비트를 담는 바이트와 연속 바이트도 일치하지 않으며, 첫 바이트에 데이터가 들어가거나 연속 바이트가 ...

Read Entire Article