상위 질문
타임라인
채팅
관점
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
예시
각주
외부 링크
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads