UTF-8
UTF-8 — это кодировка переменной длины, которая представляет символы Юникода последовательностями от 1 до 4 байтов. Она широко используется в текстовых файлах и интернете, потому что поддерживает символы разных языков и сохраняет совместимость с ASCII.
Как кодируются символы
Длина записи зависит от номера символа в Юникоде. Латинские буквы, цифры и основные знаки обычно занимают 1 байт; многие кириллические буквы — 2 байта; символы некоторых алфавитов и эмодзи — 3 или 4 байта. Важно отличать количество символов от количества байтов: слово может содержать несколько символов, но занимать больше байтов.
Буква «A» кодируется одним байтом: 01000001. Буква «А» (кириллическая) в UTF-8 занимает два байта: 11010000 10010001. Поэтому строка из 10 кириллических букв обычно занимает 20 байтов без учёта дополнительных символов.
Сколько байтов в UTF-8 занимает символ ASCII с кодом 65?
Юникод — это набор кодовых позиций и правил представления символов, а UTF-8 — конкретная кодировка символов, то есть способ записать эти позиции байтами. Один и тот же текст Юникода можно кодировать также UTF-16 или UTF-32.
При оценке размера текстового файла в UTF-8 считают именно байты, а не только количество символов. Для учебных задач следует определить, какие символы входят в текст, и умножить их количество на соответствующую длину кодирования.
Главное
- UTF-8 кодирует символы Юникода последовательностями от 1 до 4 байтов.
- ASCII-символы занимают 1 байт, кириллица обычно 2 байта, некоторые символы — 3 или 4.
- Количество символов текста не всегда равно количеству байтов в файле.