서로게이트 쌍

Encoding & Standards

U+FFFF 이상의 문자를 나타내기 위해 사용되는 두 개의 UTF-16 코드 유닛.

Characters with code points above U+FFFF cannot fit in a single 16-bit value. UTF-16 solves this by encoding them as two 16-bit values called a surrogate pair. Since most emoji are above U+FFFF, surrogate pairs are extremely common with emoji.

For example, 😀 (U+1F600) becomes the surrogate pair 0xD83D 0xDE00 in UTF-16. The formula: high surrogate = 0xD800 + ((cp - 0x10000) >> 10), low surrogate = 0xDC00 + ((cp - 0x10000) & 0x3FF).

This is why JavaScript's `'😀'.charCodeAt(0)` returns 55357 (0xD83D) — it's returning the high surrogate, not the actual code point.

관련 용어

평면 평면
65,536개의 연속 유니코드 코드 포인트 그룹. 대부분의 이모지는 평면 1(SMP)에 위치합니다.
코드 유닛 코드 유닛
문자 인코딩의 최소 비트 조합: UTF-8은 8비트, UTF-16은 16비트, UTF-32는 32비트.
보충 다국어 평면 (SMP) 보충 다국어 평면 (SMP)
대부분의 이모지 코드 포인트가 할당된 유니코드 평면 1(U+10000~U+1FFFF).
UTF-16 UTF-16
문자당 2 또는 4바이트를 사용하는 가변 너비 유니코드 인코딩으로, JavaScript와 Java에서 사용됩니다.

관련 도구

🔢 Unicode 조회 Unicode 조회
U+1F600과 같은 코드포인트를 입력하면 해당 이모지, 인코딩 세부 정보, UTF-8/16 바이트, HTML 엔티티를 확인할 수 있습니다.
🔍 시퀀스 분석기 시퀀스 분석기
ZWJ 시퀀스, 피부톤 수정자, 키캡 시퀀스, 국기 쌍을 개별 구성 요소로 분해합니다.