Вопросы к Поиску с Алисой
Unicode использует разные размеры для представления символов в UTF-8 и UTF-16, потому что это кодировки с переменной длиной. github.com Это значит, что один символ может быть закодирован разным количеством структурных единиц кодировки, то есть разным количеством байт. github.com
UTF-8 использует от одной до четырёх единиц по восемь бит. stackoverflow.com Если символ может быть закодирован одним байтом, UTF-8 закодирует его одним байтом. github.com Если нужно два байта, то используется два байта. github.com Так, например, латиница кодируется одним байтом, а кириллица — двумя байтами. github.com
UTF-16 использует одну или две единицы по 16 бит. stackoverflow.com Все символы как минимум двухбайтные, но их размер может увеличиваться до 4 байт. github.com Например, символы с кодами 0x0000–0xFFFF всегда занимают 2 байта, а символы с кодами от 0x10000 и больше — 4 байта. otvet.mail.ru