상위 질문
타임라인
채팅
관점

CESU-8

위키백과, 무료 백과사전

Remove ads

UTF-16용 호환 인코딩 체계: 8비트(Compatibility Encoding Scheme for UTF-16: 8-Bit, CESU-8)는 유니코드 기술 보고서 #26에 설명된 UTF-8의 한 변형이다.[1] 기본 다국어 평면(BMP), 즉 U+0000부터 U+FFFF 범위의 유니코드 코드 포인트는 UTF-8과 동일한 방식으로 인코딩된다. 유니코드 보조 문자, 즉 U+10000부터 U+10FFFF 범위의 코드 포인트는 UTF-16에서처럼 먼저 서로게이트 쌍으로 표현된 다음 각 서로게이트 코드 포인트가 UTF-8로 인코딩된다. 따라서 CESU-8은 각 유니코드 보조 문자에 대해 6바이트(서로게이트당 3바이트)가 필요한 반면, UTF-8은 4바이트만 필요하다. 기술 보고서에는 명시되어 있지 않지만, 쌍을 이루지 않는 서로게이트도 각각 3바이트로 인코딩되며, CESU-8은 이전 UCS-2-UTF-8 변환기를 UTF-16 데이터에 적용하는 것과 정확히 동일하다.

유니코드 비BMP 문자의 인코딩은 11101101 1010yyyy 10xxxxxx 11101101 1011xxxx 10xxxxxx로 작동한다(yyyy는 문자에서 1을 뺀 상위 5비트를 나타낸다). UTF-8에서 사용되는 4바이트 인코딩을 시작하는 0xF0-0xF4 바이트 값은 CESU-8에 나타나지 않는다.

CESU-8은 유니코드 기술 보고서가 정보 문서일 뿐이므로 유니코드 표준의 공식적인 부분이 아니다.[2] 내부 처리용으로만 사용해야 하며 외부 데이터 교환에는 사용해서는 안 된다.

W3C[3][4]WHATWG[5] HTML 표준은 HTML 문서에서 CESU-8을 지원하는 것을 금지한다. 이는 사이트 간 스크립팅 취약점을 야기할 수 있기 때문이다.[6]

자바의 수정된 UTF-8은 NUL 문자(U+0000)를 두 바이트 시퀀스 C0 80으로 특수하게 오버롱 인코딩한 CESU-8이다.[7]

오라클 데이터베이스는 "UTF8" 문자 집합에 CESU-8을 사용한다. 표준 UTF-8은 "AL32UTF8" 문자 집합을 사용하여 얻을 수 있다(오라클 버전 9.0부터).[8]

Remove ads

예시

자세한 정보 코드 포인트, 문자 ...

각주

외부 링크

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads