Что такое слишком длинная форма/кодировка?

Читая статью Википедии о UTF-8, я задался вопросом о термине слишком долго. Этот термин используется несколько раз, но статья не дает определения или ссылки на его значение.

Я хотел бы знать, может ли кто-нибудь объяснить термин и его цель.


person nEAnnam    schedule 18.08.2011    source источник


Ответы (2)


Это кодировка кодовой точки, которая занимает больше кодовых единиц, чем нужно.

Например, U+0020 представлен в UTF-8 одним байтом 0x20. Если вы декодируете два байта 0xc0 0xa0 обычным способом, вы все равно вернетесь к U+0020, но это недопустимое представление.

В исправлении Unicode #1 содержится дополнительная информация, особенно в отношении таблицы 3.1B.

person Jon Skeet    schedule 18.08.2011

UTF-8 теоретически допускает различные представления символов, которые также имеют более короткий. Например, вы можете закодировать символ ASCII двумя байтами, установив старшие биты равными нулю. Спецификация UTF-8 явно запрещает это.

person Joey    schedule 18.08.2011
comment
@Computer: o.O, какой каламбур я пропустил? - person Joey; 15.11.2017
comment
Ты сказал Форбитс! - person Computer; 15.11.2017