UTF-16 () – jeden ze sposobów kodowania znaków standardu Unicode. Sposób ten wymaga użycia szesnastobitowych słów, przy czym dla znaków na pozycjach poniżej U+10f (dziesiętnie 65536), a dokładnie w zakresach od U+0000 do U+D7FF i U+E000 do U+FFFF, używane jest jedno słowo, którego wartość odpowiada dokładnie pozycji znaku w standardzie.

W systemach Windows kodowanie to jest najczęściej używane do wewnętrznego przechowywania komunikatów UnicodeUnicode Support in wxWidgets.

Kodowanie na 4 bajtach Dla znaków z wyższych pozycji używa się dwóch słów, pierwsze z nich należy do przedziału od U+D800 do U+DBFF, drugie natomiast od U+DC00 do U+DFFF. Oznacza to, iż znaki z zakresu od U+10000 do U+10FFFF kodowane są w następujący sposób: od numeru znaku odejmowane jest 0x10000, tak aby pozostała 20-bitowa liczba z zakresu od 0 do 0xFFFFF; wartość tworzona przez najstarsze 10 bitów tej liczby jest dodawana do 0xD800 i otrzymuje się bardziej znaczące 16-bitowe słowo z zakresu od 0xD800 do 0xDBFF; pozostałe 10 młodszych bitów jest dodawane do 0xDC00, co daje mniej znaczące 16-bitowe słowo z zakresu od 0xDC00 do 0xDFFF.

Kodowanie to przedstawia poniższa tabela: + KOD 010000010001…0103FF 010400010401…0107FF ⋮⋮⋱⋮ 10FC0010FC01…10FFFF