Surrogat-Paar

Encoding & Standards

Zwei UTF-16-Codeeinheiten (ein hohes Surrogat U+D800–U+DBFF gefolgt von einem niedrigen Surrogat U+DC00–U+DFFF), die gemeinsam ein Zeichen oberhalb von U+FFFF darstellen.

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.

Verwandte Begriffe

Codeeinheit Codeeinheit
Die kleinste Bitkombination zur Kodierung eines Zeichens: 8 Bit für UTF-8, 16 Bit für UTF-16 und 32 Bit für UTF-32.
Ergänzende mehrsprachige Ebene (SMP) Ergänzende mehrsprachige Ebene (SMP)
Unicode-Ebene 1 (U+10000 bis U+1FFFF), in der die meisten Emoji-Codepoints angesiedelt sind.
Unicode-Ebene Unicode-Ebene
Eine Gruppe von 65.536 aufeinanderfolgenden Unicode-Codepoints. Ebene 0 ist die Basisebene (BMP); die meisten Emoji befinden sich in Ebene 1 (SMP).
UTF-16 UTF-16
Eine Unicode-Kodierung variabler Breite, die 2 oder 4 Bytes pro Zeichen verwendet und intern von JavaScript, Java und Windows genutzt wird.

Verwandte Werkzeuge

🔢 Unicode-Suche Unicode-Suche
Geben Sie einen Codepoint wie U+1F600 ein und erhalten Sie das Emoji, Kodierungsdetails, UTF-8/16-Bytes und HTML-Entities.
🔍 Sequenzanalysator Sequenzanalysator
Entschlüsseln Sie ZWJ-Sequenzen, Hautton-Modifikatoren, Tasten-Sequenzen und Flaggenpaare in einzelne Komponenten.