Подтвердить что ты не робот

Почему "U +" используется для обозначения кодовой точки Unicode?

Почему кодовые точки Юникода выглядят как U+ <codepoint>?

Например, U+2202 представляет символ .

Почему бы не U- (тире или дефис) или что-нибудь еще?

4b9b3361

Ответ 1

Символы "U +" представляют собой ASCIIfied версию символа U + 228E MULTISET UNION "⊎" U (U-образный символ объединения со знаком "плюс" внутри него), который должен был символизировать Unicode как объединение наборов символов, См. описание Kenneth Whistlers в списке рассылки Unicode.

Ответ 2

Стандарт Unicode нуждается в некоторых обозначениях для разговора о кодовых точках и именах символов. Он принял соглашение "U +" , за которым следуют четыре или более шестнадцатеричных цифр, по крайней мере, еще Unicode Standard, версия 2.0.0, опубликованной в 1996 году (источник: архивированная копия PDF на веб-сайте Консорциума Юникода).

Обозначение "U +" полезно. Это дает возможность маркировать шестнадцатеричные цифры как кодовые точки Unicode, а не октеты, или неограниченные 16-битные величины, или символы в других кодировках. Он хорошо работает при запуске текста. "U" предлагает "Юникод".

Мое личное воспоминание о дискуссиях в области программного обеспечения в начале 1990 года о Unicode заключается в том, что соглашение о "U +" , сопровождаемое четырьмя шестнадцатеричными цифрами, было распространено во времена Unicode 1.0 и Unicode 2.0. В то время Unicode рассматривался как 16-битная система. С появлением Unicode 3.0 и кодировкой символов в кодовых точках U + 010000 и выше было принято соглашение "U-" , за которым следуют шесть шестнадцатеричных цифр, в частности, чтобы выделить дополнительные две цифры в числе. (Или, может быть, это было наоборот, переход от "U-" к "U +" .) По моему опыту, соглашение "U +" теперь гораздо более распространено, чем конвенция "U-" , и мало кто использует разность между "U +" и "U-" , чтобы указать количество цифр.

Я не смог найти документацию о переходе с "U +" на "U-" . В архивных сообщениях списка рассылки с 1990 года должно быть доказательство этого, но я не могу с уверенностью сказать никому. Unicode Standard 2.0 заявил: "Коды символов Unicode имеют равномерную ширину 16 бит". (стр. 2-3). Он заключил свое соглашение о том, что "индивидуальное значение Unicode выражается как U + nnnn, где nnnn - четырехзначное число в шестнадцатеричной системе" (стр. 1-5). Суррогатные значения были выделены, но коды символов не были определены выше U + FFFF, и не было упоминания о UTF-16 или UTF-32. Он использовал "U +" с четырьмя цифрами. Unicode Standard 3.0.0, опубликованный в 2000 году, определил UTF-16 (стр. 46-47) и обсудил коды U + 010000 и выше. Он использовал "U +" с четырьмя цифрами в некоторых местах и ​​с шестью цифрами в других местах. Самый прочный след, который я нашел, был в Unicode Standard, версия 6.0.0, где таблица синтаксической нотации BNF определяет символы U+HHHH и U-HHHHHHHH (стр. 559).

Нотация "U +" не является единственным соглашением для представления кодовых единиц Unicode или кодовых единиц. Например, Язык Python определяет следующие строковые литералы:

  • u'xyz', чтобы указать строку Unicode, последовательность символов Unicode
  • '\uxxxx', чтобы указать строку с символом unicode, обозначенным четырьмя шестнадцатеричными цифрами
  • '\Uxxxxxxxx', чтобы указать строку с символом юникода, обозначенным восемью шестнадцатеричными цифрами

Ответ 3

Это зависит от того, какую версию стандарта Unicode вы говорите. Из Wikipedia:

Старые версии стандартного использования аналогичные обозначения, но слегка разные правила. Например, Юникод 3.0 используется "U-", за которым следуют восемь цифр, и допускается использование "U +" только с четырьмя цифрами до укажите код, а не код точка.

Ответ 4

Это просто соглашение, показывающее, что это значение Юникод. Немного как "0x" или "h" для шестнадцатеричных значений (0xB9 или B9h). Почему 0xB9, а не 0hB9 (или &hB9 или $B9)? Просто потому, что то, как монета переворачивала: -)