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