UTF-16 використовує 16 бітів для кожного символу і представляє лише частину символів Unicode, називається BMP (для всіх практичних цілей цього достатньо). Java використовує цю кодування у своїх рядках. Unicode – це 21-бітний кодовий набір, і 4 байта достатньо для уявлення будь-якого символ Unicode в UTF-8.