UTF-8 сопоставляет каждому значению Unicode уникальную последовательность из одного, двух, трёх или четырёх байтов. ASCII остаётся совместимым, а большие значения распределяют биты между ведущим и продолжениями. Поэтому одинаковое число значений может занимать разный объём. UnicodeLens вычисляет последовательность только после проверки scalar.

Диапазон определяет число байтов

U+0000–U+007F занимает один байт, U+0080–U+07FF — два, U+0800–U+FFFF — три, кроме запрещённых суррогатов, а U+10000–U+10FFFF — четыре. Первый байт задаёт длину, следующие имеют шаблон продолжения. UnicodeLens печатает каждый байт двумя заглавными hex-цифрами, сохраняет нули и разделяет байты одним пробелом.

A, é и 😀 занимают 1, 2 и 4 байта

Проверенный набор Aé😀 показывает разную ширину. A — U+0041 и байт 41. Составной é — U+00E9 и байты C3 A9. Emoji — U+1F600 и байты F0 9F 98 80. Вместе это три значения, четыре единицы UTF-16 и семь байтов UTF-8. Общая копия точно равна 41 C3 A9 F0 9F 98 80.

Байты не определяют визуальный смысл

Допустимая последовательность UTF-8 доказывает только закодированный порядок значений. Шрифты могут рисовать одно значение по-разному, несколько значений могут выглядеть одним символом, а канонически связанные записи использовать разные байты. Поэтому UnicodeLens показывает представление, но не называет байты числом символов, шириной или результатом безопасности. Для свойств нужна целевая система и закреплённая база Unicode.