Итаг, допустим у нас есть файл в UTF-8.
Начинается он с трёхбайтового маркера (который всегда одинаковый).
The UCS character U+FEFF "ZERO WIDTH NO-BREAK SPACE" is also known informally as "BYTE ORDER MARK" (abbreviated "BOM").
Unicode 3.2 adds a new character, U+2060 "WORD JOINER", with exactly the same semantics and usage as U+FEFF except for the signature function
В файле используется какая-то там алгоритмическая кодировка (где бы про неё прочитать? - описанная в RFC3629)
После раскодировки в памяти образуются code points (всегда ли они двухбайтовые?).
Один символ (глиф) может занимать несколько code points (склеиваться из нескольких символов)
В русском языке это важно знать для простановки ударения над буквами.
Вот, допустим, пишите вы текстовый редактор и надо передвинуться на глиф влево.
Внезапно оказывается, что этот глиф, ну например буква "ы́". Нетрудно посчитать,
что передвигатся надо на два кодепоинта или 4 байта.
Кто только и главное как это считает?
Отредактировано Лис (2017-03-26 13:01:53)