UTF-16 speichert [[Unicode]]-Zeichen als folgen von 2-Byte-Einheiten (16 Bit). Es ist ebenfalls variabel in der Länge: Ein Zeichen ist 2 oder 4 Bytes lang. Die meisten Zeichen (z. B. aus europäischen Schriften) benötigen nur 2 Bytes. Zeichen außerhalb der sogenannten Basic Multilingual Plane (BMP, Codepoints > U+FFFF) benötigen 4 Bytes (zwei 16-Bit-"Surrogates"). Beispiel: * "á" (U+00E1) wird als 0x00E1 (2 Bytes) gespeichert. * Ein Emoji wie "😀" (U+1F600) wird als zwei Surrogate kodiert: 0xD83D 0xDE00 (insgesamt 4 Bytes). Vorteile: * Häufig in Windows- und Java-Systemen. * Für viele Sprachen kompakter als UTF-32. ^ Code point range ^ Encoding Format ^ | U+0000 – U+D7FF | 16-bit: 1 code unit (0000000000000000 - 1101101111111111) | | U+E000 – U+FFFF | 16-bit: 1 code unit (1110000000000000 - 1111111111111111) | | U+10000 – U+10FFFF | 2×16-bit: surrogate pair: 110110xxxxxxxxxx + 110111xxxxxxxxxx |