Какова цель несимволов от U+FDD0 до U+FDEF?

U+FFFE должен быть несимволом, чтобы метка порядка байтов работала.

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

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


person dan04    schedule 04.03.2011    source источник
comment
@Pacerier, проверь альтернативный текст комикса. (наведение/подсказка)   -  person Ben    schedule 01.02.2012


Ответы (3)


Хорошо, вопрос в том, «для чего они нужны» и «почему они находятся в середине форм представления на арабском языке».

  • Был необходим блок из 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

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

person Ben    schedule 07.03.2011
comment
Не очень объясняет, почему они не использовали FFF0 через FFFF. - person Raedwald; 01.02.2012
comment
@Raedwald, от FFF9 до FFFF уже используются для других целей. unicode.org/charts/PDF/UFFF0.pdf - person Ben; 01.02.2012
comment
Ах, значит, эти несимволы были добавлены после того, как были выделены символы с FFF9 по FFFF. - person Raedwald; 01.02.2012

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

Я попытался объяснить, основываясь на том, что сказано в стандарте 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-битной кодовой единицы, FFFF16 U+10FFFF связан с наибольшим допустимым значением 32-битной кодовой единицы UTF-32, 10FFFF< sub>16 Этот атрибут делает эти две несимвольные кодовые точки полезными для внутренних целей в качестве часовых. Например, их можно использовать для обозначения конца списка, для представления значения в индексе, которое гарантированно будет выше, чем любое допустимое символьное значение, и т. д.

person Zimbabao    schedule 05.03.2011
comment
Нет, я не говорил, что U+FFFE — это спецификация. Я сказал, что несимвольный статус U+FFFE необходим для того, чтобы U+FEFF мог быть спецификацией. И вы вообще не ответили на мой вопрос, а просто скопировали/вставили ту же самую ссылку, которую я включил. - person dan04; 05.03.2011
comment
Ok. Извините, я ошибся в части спецификации, я отредактирую это. Но там написано, что его задуманная особенность, не по стандарту. Там сказано, что его можно использовать как сильный сигнал, а не как верный способ определения. И он говорит, что зарезервировал другие точки для приложения, чтобы решить, как его использовать. - person Zimbabao; 05.03.2011
comment
Что ж, я вижу применение внутренним стражам, не являющимся персонажами. Но в Unicode 3.0 их уже было 34. Зачем нужно добавлять еще 32 в 3.1? - person dan04; 05.03.2011
comment
Ok. Если вы правильно поняли, ваш вопрос заключается в том, что это за историческая причина резервирования 32 новых персонажей? В спецификации Unicode нет объяснения. Я предполагаю, что это может быть потому, что они чувствовали потребность в большем количестве неперсонажей в BMP, поскольку в BMP было только два из них и его наиболее часто используемый самолет, и оба уже имели какое-то применение. Одним из таких примеров, который я могу вспомнить, является приложение Java. - person Zimbabao; 05.03.2011

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

person Joshua Burns    schedule 05.12.2012
comment
Неправильный! Это постоянное место для Глаза Василиска, и оно было выбрано по (очевидным) историческим причинам. - person Mac; 29.04.2014