UTF-16

Encoding & Standards

문자당 2 또는 4바이트를 사용하는 가변 너비 유니코드 인코딩으로, JavaScript와 Java에서 사용됩니다.

UTF-16 uses 16-bit code units. Characters in the Basic Multilingual Plane (U+0000 to U+FFFF) use one code unit (2 bytes). Characters above U+FFFF — including most emoji — require a surrogate pair (4 bytes).

This is why JavaScript's `string.length` can be surprising with emoji: `'😀'.length` returns 2 (two UTF-16 code units), not 1. Developers must use spread syntax (`[...'😀'].length`) or `Array.from()` for correct counting.

UTF-16 exists in two byte orders: UTF-16LE (little-endian, used by Windows) and UTF-16BE (big-endian). A BOM character can indicate which is used.

관련 용어

서로게이트 쌍 서로게이트 쌍
U+FFFF 이상의 문자를 나타내기 위해 사용되는 두 개의 UTF-16 코드 유닛.
바이트 순서 표시 (BOM) 바이트 순서 표시 (BOM)
UTF-16/UTF-32 인코딩에서 바이트 순서를 나타내기 위해 텍스트 파일 시작 부분에 배치되는 U+FEFF 문자.
코드 유닛 코드 유닛
문자 인코딩의 최소 비트 조합: UTF-8은 8비트, UTF-16은 16비트, UTF-32는 32비트.
보충 다국어 평면 (SMP) 보충 다국어 평면 (SMP)
대부분의 이모지 코드 포인트가 할당된 유니코드 평면 1(U+10000~U+1FFFF).
UTF-32 UTF-32
문자당 정확히 4바이트를 사용하는 고정 너비 유니코드 인코딩으로, 직접적인 코드 포인트 매핑을 제공합니다.
UTF-8 UTF-8
문자당 1~4바이트를 사용하는 가변 너비 유니코드 인코딩으로, 웹의 98% 이상에서 사용됩니다.

관련 도구

🔢 Unicode 조회 Unicode 조회
U+1F600과 같은 코드포인트를 입력하면 해당 이모지, 인코딩 세부 정보, UTF-8/16 바이트, HTML 엔티티를 확인할 수 있습니다.