В стандарте unicode достаточно кодовых точек, поэтому вам нужно 4 байта для их хранения. Вот что делает кодировка UTF-32. Тем не менее, кодировка UTF-8 каким-то образом сжимает их в гораздо меньшие пространства, используя так называемое «кодирование переменной ширины».
Фактически, ему удается представить первые 127 символов US-ASCII всего одним байтом, который выглядит в точности как настоящий ASCII, поэтому вы можете интерпретировать много текста ascii, как если бы это был UTF-8, ничего не делая с ним. Аккуратный трюк. Итак, как это работает?
Я собираюсь задать и ответить на свой вопрос здесь, потому что я просто немного прочитал, чтобы понять это, и подумал, что это может сэкономить время кому-то еще. Плюс, может быть, кто-нибудь поправит меня, если я что-то ошибся.