CESU-8

CESU-8

UTF-16: 8비트(CESU-8)의 호환성 부호화 방식은 Unicode Technical Report #[1]26에서 설명되고 있는 UTF-8의 변형입니다.기본 다국어 플레인(BMP)으로부터의 유니코드 코드 포인트, 즉 U+0000~U+FFF 범위의 코드 포인트는 UTF-8과 같은 방법으로 부호화된다.유니코드 보충 문자, 즉 U+10000~U+FF, First의 코드 포인트.F-8. 따라서 CESU-8은 Unicode 보조문자별로 6바이트(대리점당 3바이트)가 필요한데 UTF-8은 4바이트만 필요합니다.기술 보고서에는 명시되어 있지 않지만 페어링되지 않은 대용품은 각각3 바이트로 부호화되어 있습니다.CESU-8은 오래된 UCS-2 to UTF-8 컨버터를 UTF-16 데이터에 적용하는 것과 동일합니다.

Unicode 비BMP 문자의 부호화는 다음과 같이 동작합니다.11101101 1010yyyy 10xxxxxx 11101101 1011xxxx 10xxxxxx(yyyy는 문자에서 1을 뺀 상위5비트를 나타냅니다).바이트 값 0xF0~0xF4는 UTF-8에서 사용되는4 바이트 인코딩을 시작하기 때문에 CESU-8에는 표시되지 않습니다.

Unicode Technical Reports는 참고 자료일 [2]뿐이므로 CESU-8은 Unicode Standard의 공식 부분이 아닙니다.내부 처리에만 사용해야 하며 외부 데이터 교환에는 사용하지 않아야 합니다.

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

Java의 Modified UTF-8은 CESU-8로, NUL 문자(U+0000)를 2바이트 시퀀스로서 특수한 오버롱 부호화 합니다.C0 80를 클릭합니다.[7]

Oracle 데이터베이스는 "UTF8" 문자 집합에 CESU-8을 사용합니다.표준 UTF-8은 Oracle 버전 9.0 이후 문자 집합 "AL32UTF8"을 사용하여 얻을 수 있습니다.

코드 포인트 U+0045 U+0205 U+10400
성격 E ȅ 𐐀
UTF-8 45 C8 85 F0 90 90 80
UTF-16 0045 0205 D801 DC00
CESU-8 45 C8 85 ED A0 81 ED B0 80

레퍼런스

  1. ^ McGowan, Rick. "Unicode Technical Report #26 - Compatibility Encoding Scheme for UTF-16: 8-Bit (CESU-8)". Unicode Consortium.
  2. ^ "About Unicode Technical Reports - Types of Unicode Technical Reports: UAX, UTS, UTR". Unicode Consortium.
  3. ^ "8.2.2.3. Character encodings". HTML 5.1 Standard. W3C.
  4. ^ "8.2.2.3. Character encodings". HTML 5 Standard. W3C.
  5. ^ "12.2.3.3 Character encodings". HTML Living Standard. WHATWG.
  6. ^ "<meta> - HTML". MDN Web Docs. Mozilla.
  7. ^ "Java SE documentation for Interface java.io.DataInput, subsection on Modified UTF-8". Oracle Corporation. 2015. Retrieved 2021-04-30.

외부 링크