개요

  • 유니코드의 인코딩 방식으로, 현재 널리 쓰이는 방식.
  • 최소 1바이트에서 최대 6바이트(실질적으로 최대 4바이트)까지의 길이를 갖는 가변 길이 인코딩.
  • 이론상 표현 가능 범위는 U+7FFFFFFF까지이나, 실질적으로는 유니코드 표준에 맞추어 U+10FFFF까지 표현 가능.
  • U+0000부터 U+007F까지는 1바이트만으로 표현함에 따라 ASCII와 호환되어 널리 쓰임.

표현 방식

  • U+0000부터 U+007F까지는 그 코드포인트 값을 그대로 사용. 최상위 비트는 0으로 하고 나머지 7비트에 0과 1을 알맞게 넣음.
  • U+0080부터는 첫 바이트에 몇 비트를 사용하는지 명시하고, 나머지 바이트에는 상위 두 비트에 10을 할당함.
    • U+0080부터 U+07FF까지는 2바이트를 사용. 첫 바이트에는 110xxxxx, 두 번째 바이트에는 10xxxxxx. 코드포인트 값을 2진수로 변환하여 x의 자리(최대 11개 비트)에 뒤쪽 비트부터 채움.
      • 예: Σ(U+03A3) = 1110 100011 ⇒ 11001110 10100011 ⇒ CE A3
    • U+0800부터 U+FFFF[1]까지는 3바이트를 사용. 첫 바이트에는 1110xxxx, 같은 방법으로 나머지 두 바이트에는 10xxxxxx.
      • 예: 한(U+D55C) = 1101 010101 011100 ⇒ 11101101 10010101 10011100 ⇒ ED 95 9C
    • U+10000[2]부터 U+10FFFF[3]까지는 4바이트를 사용. 첫 바이트에는 11110xxx, 나머지 세 바이트에는 10xxxxxx.
      • 예: 𝄞(U+1D11E) = 11101 000100 011110 ⇒ 11110000 10011101 10000100 10011110 ⇒ F0 9D 84 9E

각주

  1. 기본 다국어 평면(BMP)의 마지막 코드포인트.
  2. 확장 평면의 첫 코드포인트.
  3. 실제로 U+1FFFFF까지 적용되나, 유니코드 표준에는 U+10FFFF까지만 사용하도록 규정됨.