учитывайте, что есть разные «алфавиты» (обычному люду, а не учителям информатики, известные как кодировка), они имеют разное количество символов.
Допустим, в алфавите 256 символов — такой алфавит позволяет юзеру печатать почти все символы, которые есть на клаве и называется достаточным.
Значит, информационный вес одного символа в таком алфавите равен восьми битам (или одному байту), потому что 256 = 2⁸
А у нас ситуация с текстами несколько иная по двум причинам:
[1.] Хотя форма записи UTF-8 позволяет кодировать до 2²¹ (2 097 152) кодовых позиций, было принято решение использовать лишь 1 112 064 для совместимости с UTF-16. Впрочем, даже и этого в данный момент более чем достаточно — в версии 13.0 используется всего 143 859 кодовых позиций.
Помимо этого, надо учитывать, что UTF-8...
UTF-8 <...> — распространённый стандарт кодирования символов, позволяющий более компактно хранить и передавать символы Юникода, используя переменное количество байт (от 1 до 4) <...>
То есть например, обычный пробел и неразрывный пробел, хотя они для вас и выглядят одинаково, но в UTF-8 обычный пробел имеет вес в 1 байт, а неразрывный пробел — в 2 байта.
Ещё для примера:
" это 1 байт « это 2 байта „ это 3 байта - это 1 байт — это 2 байта – это 3 байта
2. В оформлении текста на Фанфиксе мы все используем BBCode — те самые любимые всеми теги с квадратными скобками. Каждый из этих тегов тоже имеет вес. К примеру стандартная для нас конструкция [b.][./b] (за исключением точек, ессно) — весит 7 байт.
Следовательно, окончательный вес текста зависит от символов, напечатанных в тексте и их разметке — курсив это, полужирный шрифт или зачёркнутый — всё это влияет на информационный вес текста.
Вероятно, здесь есть ещё подводных камней, но об этом знает Реф.