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

Какова цель нехарактеров U + FDD0 в U + FDEF?

U + FFFE должен быть нехарактерным, чтобы позволить марке Order Byte.

U + FFFF описывается в Unicode Standard как "полезный для внутренних целей как часовые". Имеет смысл.

Но я не могу понять, и стандарт Unicode действительно не объясняет, почему набор нехарактеров включает в себя некоторый случайный блок в "Арабских презентационных формах-A". Для чего они нужны? (Помимо глаз василиска?)

4b9b3361

Ответ 1

ОК, вопрос: "зачем он" и "Почему они находятся в середине арабских презентационных форм".

  • Необходимо было создать блок из 32 несимволов, чтобы "сделать дополнительные коды доступными для программистов для внутренних целей" http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=IWS-Chapter04a#4d3110c8
  • Требовалось, чтобы он находился в базовой многоязычной плоскости (BMP), то есть от 0x0000 до 0xFFFF, чтобы они могли иметь однокодовые представления в UTF-16.
  • В блоке Арабских презентационных форм был блок неиспользуемых кодовых точек.
  • Было решено не кодировать больше арабских презентационных форм, поэтому они никогда не будут использоваться. http://www.unicode.org/mail-arch/unicode-ml/y2001-m10/0014.html

Поэтому было решено, что эти кодовые точки, которые никогда не будут использоваться иначе, будут обозначаться нехарактерами, чтобы они могли использоваться внутри приложений/программистов.

Ответ 2

Эти нехарактеры для внутреннего использования приложением и не должны меняться.

Я попытался объяснить на основе того, что сказано в стандарте Unicode.

Unicode получил 66 несимвольных символов. Для всех 17 плоскостей у них есть по два, последние два кодовых точки плоскости, заканчивающиеся FFFE FFFF. 32 других символа без символов - это непрерывный блок U + FDD0 до U + FDEF.

Итак, общее количество

 17*2 + 32 = 66

Прочтите следующий текст в главе 16 юникода, в которой говорится, что в каком-то случайном месте из-за "исторической причины" мне любопытно, но я не думаю, что есть какая-то двусмысленность.

По историческим причинам диапазон U + FDD0..U + FDEF содержится в блоке арабских презентационных форм-A, но эти нехарактеры не являются "Арабские нехарактеры" или "справа налево", и не различаются ни в одном другим способом от других нехарактеров, за исключением значений их кодовой точки

U+FEFF - это спецификация, а U+FFFE - это байтовая версия. Но поскольку U+FFFE является нехарактерным, когда процесс интерпретации находит U + FFFE в качестве первого символа, он сигнализирует либо о том, что процесс столкнулся с текстом, который имеет неправильный порядок байтов, либо что файл недействителен. Текст Unicode, он просто дает сигнал, а не стандартный способ. Это может быть либо один, обратный байт, либо неправильный текст.

В разделе Unicode раздел 3.2 в разделе C2 говорится

C2 Процесс не должен интерпретировать нехарактерную кодовую точку как абстрактный символ.

  • Точки нехарактерного кода могут использоваться внутренне, например, для контрольных значений или разделителей, но не должны публиковаться.

Итак, как разработчики приложений, вы можете использовать эти символы по своему усмотрению. Они используются как дозорный или делиммерный или могут быть некоторыми символами басклика, но их не следует менять.

Раздел 16.7 сообщает

В сущности, нехарактеры можно рассматривать как внутренние кодовые точки для внутренних приложений. В отличие от персонажей частного характера, описанных в разделе 16.5, Персонажи частного использования, которые являются присвоенными символами и предназначены для использования в открытом обмене, при условии интерпретация по частному соглашению, несимволы постоянно сохраняются (неназначенные) и не имеют никакой интерпретации вне их возможного применения - внутренние частные использования

Опять же U + FFFF не зарезервирован в качестве контрольного сигнала по стандарту Unicode, а только для типичного варианта использования. Читайте в раздел 16.7

U + FFFF и U + 10FFFF. Эти две нехарактерные коды имеют атрибут связанные с наибольшими значениями кодовых единиц для конкретных форм кодирования Unicode. В UTF-16, U + FFFF ассоциируется с наибольшим значением 16-битного кода, FFFF 16U + 10FFFF связан с наибольшим юридическим значением 32-битного кода UTF-32, 10FFFF 16Этот атрибут делает эти два нехарактерных кодовых пункта полезными для внутренних целей как часовые. Для Например, они могут использоваться для указания конца списка, для представления значения в индексе гарантированно выше любого допустимого значения символа и т.д.

Ответ 3

Как упоминалось здесь, в xkcd, U+FDD0 на самом деле является символом Юникода для глаза василиска. Однако для (очевидных) причин личной безопасности символ не отображается на экране...:)