Unicode: символы, кодовые точки и байты

Unicode задаёт общее пространство для представления символов разных письменностей.

Иллюстрация к теме, а не фотография описанного события. snuci · Public domain. Размер изменён; при показе возможно кадрирование.

Символ, его кодовая точка и последовательность байтов — разные понятия. Unicode описывает символы, а кодировки определяют способ их хранения и передачи. Для приложения это особенно заметно при работе с разными языками, составными знаками и эмодзи.

Поэтому длина строки в байтах не обязана совпадать с числом видимых знаков. Усечение текста или подсчёт пользовательского лимита требуют осмысленного выбора единицы. Полезно проверять интерфейс на русском тексте, комбинируемых символах и длинных последовательностях, чтобы не повредить содержимое при сохранении.

Источники

  1. Официальная документация — Unicode: символы, кодовые точки и байтыunicode.org