stringtranslate.com

Свойство символа Unicode

Стандарт Unicode присваивает различные свойства каждому символу и кодовой точке Unicode . [1] [2]

Свойства могут использоваться для обработки символов (кодовых точек) в процессах, таких как разрыв строки, направление письма справа налево или применение элементов управления. Некоторые «свойства символов» также определены для кодовых точек, которым не назначен символ, и кодовых точек, помеченных как «<не символ>». Свойства символов описаны в Стандартном приложении № 44. [2]

Свойства имеют уровни силы: нормативный, информативный, вспомогательный или предварительный. Для простоты спецификации свойство символа может быть назначено путем указания непрерывного диапазона кодовых точек, которые имеют то же свойство. [3]

Семантические элементы

Свойства отображаются в следующем порядке: [4]

[код];[имя];[gc];[cc];[bc];[разложение];[nv-dec];[nv-dig];[nv-num];[bm];[псевдоним];;[верхний регистр];[нижний регистр];[заглавный регистр]

Свойство между «псевдонимом» и «верхним регистром» устарело и теперь равно нулю для всех символов Unicode.

Код

Первое свойство — это шестнадцатеричный код .

Имя и псевдоним

Символу Unicode присваивается уникальное Имя (na). [1] Имя состоит из заглавных букв A–Z, цифр 0–9, дефиса-минуса и пробела . Некоторые последовательности исключаются: имена, начинающиеся с пробела или дефиса, имена, заканчивающиеся пробелом или дефисом, повторяющиеся пробелы или дефисы, а также пробел после дефиса не допускаются. Имя гарантированно уникально в Unicode и может использоваться для идентификации кодовой точки и ее символа. Идеографические символы, которых десятки тысяч, именуются по шаблону " cjk unified ideograph - hhhh ". Например, U+4E00 CJK UNIFIED IDEOGRAPH-4E00 . Символы форматирования также именуются: U+00A0 NO-BREAK SPACE .  

Следующие классы кодовых точек не имеют имени (na=""): элементы управления (общая категория: Cc), частное использование (Co), суррогат (Cs), несимволы (Cn) и зарезервированные (Cn). На них можно ссылаться неформально с помощью общего или специального мета-имени, называемого "метками кодовых точек": <control>, <control-0088>, <reserved>, <noncharacter- hhhh >, <private-use- hhhh > или <surrogate>. Поскольку эти метки содержат скобки <>, они никогда не могут отображаться как имя, что предотвращает путаницу.

Имена версии 1.0

В версии 2.0 Unicode многие имена были изменены. С этого момента вступило в силу правило «имя никогда не изменится», включая строгое (нормативное) использование псевдонимов. Неиспользуемые имена версии 1.0 были перемещены в свойство Alias, чтобы обеспечить некоторую обратную совместимость.

Имя персонажа псевдоним

Начиная с версии Unicode 2.0, опубликованное имя для кодовой точки никогда не изменится. Поэтому в случае неправильного написания имени символа или если имя символа полностью неверно или серьезно вводит в заблуждение, символу может быть назначен формальный псевдоним имени символа , и этот псевдоним может использоваться приложениями вместо фактического дефектного имени символа. [1] Например, U+FE18ФОРМА ПРЕДСТАВЛЕНИЯ ДЛЯ ВЕРТИКАЛЬНОЙ ПРАВОЙ БЕЛОЙ ДВУХСТОРОННЕЙ СКОБКИ имеет псевдоним имени символа " ФОРМА ПРЕДСТАВЛЕНИЯ ДЛЯ ВЕРТИКАЛЬНОЙ ПРАВОЙ БЕЛОЙ ДВУХСТОРОННЕЙ СКОБКИ " для того, чтобы смягчить неправильное написание "bracket" как "brakcet" [ sic ] в фактическом имени символа; U+A015СЛОГОВЫЙ И И У имеет псевдоним имени персонажа «ЗНАК ПОВТОРЕНИЯ СЛОГА И И», поскольку, в отличие от имени персонажа, он не имеет фиксированного слогового значения.

В дополнение к псевдонимам имен символов, которые являются исправлениями для некорректных имен символов, некоторым символам назначаются псевдонимы, которые являются альтернативными именами или сокращениями. В стандарте Unicode определены пять типов псевдонимов имен символов:

Все формальные псевдонимы имен персонажей следуют правилам для допустимых имен персонажей и гарантированно являются уникальными как в пределах псевдонима имени персонажа, так и в пределах пространств имен имен персонажей (по этой причине имя ISO 6429 "BELL" не определено как псевдоним для U+0007 <control-0007> ). потому что U+1F514 называется "BELL"). [1]

Начиная с версии Unicode 16.0, тридцать пять формальных псевдонимов имен символов определены как исправления для дефектных имен символов. [5]

Помимо этих нормативных имен, в таблицах кодов Unicode могут быть показаны неформальные имена . Это другие общеупотребительные имена для символа, и они не имеют тех же ограничений на символы. Эти неформальные имена не гарантируют уникальность и могут быть изменены или удалены в более поздних версиях стандарта.

Общая категория

Каждой кодовой точке назначается значение для категории General. Это одно из свойств символа, которое также определяется для неназначенных кодовых точек и кодовых точек, которые определены как "не символ".

Пунктуация

Символы имеют отдельные свойства, указывающие на то, что они являются символами пунктуации . Все свойства имеют значения Да/Нет : Dash , Quotation_Mark , Sentence_Terminal , Terminal_Punctuation . Свойство Punctuation относится к символам, которые используются для разделения или структурирования текста, и они классифицируются по разным типам в зависимости от их ролей. Unicode назначает этим символам пунктуации определенные категории.

Пробелы

Пробел — это широко используемая концепция для типографского эффекта. В основном она охватывает невидимые символы, которые имеют эффект пробела в отображаемом тексте. Она включает пробелы , табуляции и элементы управления форматированием новой строки. В Unicode такой символ имеет свойство "WSpace=yes". В версии 16.0 существует 25 пробельных символов.


Корпус

Значение регистра в Unicode — Normataive. Оно относится к тем письменностям, в которых есть заглавные (т. е. заглавные, маюскульные) и строчные (т. е. малые, минускульные) буквы. Разница в регистре встречается в адламском, армянском, чероки, коптском, кириллическом, дезеретском, гарайском, глаголическом, греческом, грузинском, хуцури и мхедрули, латинском, медефаидринском, древневенгерском, осейджском, виткуки и варанг-сити.

(верхний, нижний, титульный, складной — как простой, так и полный)

Другие общие характеристики

Идеографический, алфавитный, несимвольный.

Объединение классов

Некоторые распространённые коды:

0 = пробельная буква, символ или модификатор (например, a, (, ʰ)
1 = наложение
6 = чтение по-ханьски (диакритические знаки чтения CJK)
7 = нукта (диакритический знак нукта в брахмийском письме )
8 = знаки озвучивания каны
9 = вирама

10–199 = различные классы с фиксированной позицией

Знаки, прикрепляемые к базовой букве:

200 = прикреплено внизу слева
202 = прикрепляется непосредственно ниже (например, седиль на ç)
204 = прикреплено внизу справа
208 = прикреплен к левому
210 = прикреплен справа
212 = прикреплен к верхнему левому углу
214 = прикреплено непосредственно выше
216 = прикреплено вверху справа

Знаки, не прикрепленные к базовой букве:

218 = внизу слева
220 = прямо под (например, кольцо на n̥)
222 = внизу справа
224 = левый
226 = справа
228 = вверху слева
230 = выше (например, острый удар на á)
232 = вверху справа
233 = двойной снизу (состоит из двух оснований)
234 = двойной сверху (расширяет два основания)
240 = нижний индекс йота (только греческий диакритический знак)

Двунаправленное письмо

Шесть свойств символов относятся к двунаправленному письму: Bidi_Class , Bidi_Control , Bidi_Mirrored , Bidi_Mirroring_Glyph , Bidi_Paired_Bracket и Bidi_Paired_Bracket_Type .

Одной из основных особенностей Unicode является поддержка двунаправленного ( Bidi ) отображения текста справа налево (R-to-L) и слева направо (L-to-R). Двунаправленный алгоритм Unicode UAX9 [19] описывает процесс представления текста с изменяющимися направлениями письма. Например, он позволяет использовать цитату на иврите в английском тексте. Bidi_Character_Type отмечает поведение символа при направленном письме. Для переопределения направления Unicode определил специальные символы управления форматированием ( Bidi-Control s). Эти символы могут задавать направление и по определению влияют только на двунаправленное письмо.

Каждая кодовая точка имеет свойство Bidi_Class . Оно определяет ее поведение в двунаправленном тексте, интерпретируемом алгоритмом:

Тип двунаправленного символа ( свойство символа Unicode Bidi_Class ) [1]

В обычных ситуациях алгоритм может определить направление текста по этому свойству символа. Для управления более сложными ситуациями Bidi, например, когда английский текст имеет кавычки на иврите, в Unicode добавляются дополнительные параметры. Двенадцать символов имеют свойство Bidi_Control=Yes: ALM, FSI, LRE, LRI, LRM, LRO, PDF, PDI, RLE, RLI, RLM и RLO, как указано в таблице. Это невидимые символы управления форматированием, используемые только алгоритмом и не имеющие эффекта за пределами двунаправленного форматирования. [19] Несмотря на название, они являются символами форматирования, а не управляющими символами, и имеют общую категорию Другие, формат (Cf) в определении Unicode.

По сути, алгоритм определяет последовательность символов с тем же сильным типом направления (R-to-L или L-to-R), принимая во внимание переопределение специальными элементами управления Bidi. Числовые строки (слабые типы) назначаются направлению в соответствии с их сильным окружением, как и нейтральные символы. Наконец, символы отображаются в соответствии с направлением строки.

Два свойства символа имеют значение для определения зеркального отображения глифа в двунаправленном тексте: Bidi_Mirrored=Yesуказывает, что глиф должен быть зеркальным при написании от R к L. Bidi_Mirroring_Glyph=U+hhhhЗатем свойство может указывать на зеркальный символ. Например, скобки ( , ) зеркально отображаются таким образом. Формирование курсивных шрифтов, таких как арабский, и зеркальное отображение глифов, имеющих направление, не является частью алгоритма.

Числовые значения и типы

Десятичная дробь

Символы классифицируются с типом Numeric . [1] Такие символы, как дроби, подстрочные и надстрочные индексы, римские цифры, числители валют, обведенные числа и цифры, специфичные для письменности, имеют тип Numeric. Они имеют числовое значение , которое может быть десятичным, включая ноль и отрицательные числа, или вульгарной дробью. Если такого значения нет, как у большинства символов, то числовой тип — «None».

Символы, имеющие числовое значение, делятся на три группы: десятичные (De), цифровые (Di) и числовые (Nu, т. е. все остальные). «Десятичный» означает, что символ является прямой десятичной цифрой. Только символы, являющиеся частью непрерывного закодированного диапазона 0..9, имеют числовой тип Decimal. Другие цифры, такие как надстрочные индексы, имеют числовой тип Digit. Все числовые символы, такие как дроби и римские цифры, в конечном итоге имеют тип «Numeric». Предполагаемый эффект заключается в том, что простой синтаксический анализатор может использовать эти десятичные числовые значения, не отвлекаясь, скажем, на числовой надстрочный индекс или дробь. Восемьдесят три идеограммы CJK, представляющие число, включая те, которые используются для бухгалтерского учета, имеют тип Numeric.

С другой стороны, символы, которые могут иметь числовое значение в качестве второго значения, по-прежнему помечены как Numeric type None и не имеют числового значения. Например, латинские буквы могут использоваться в нумерации абзацев, как "II.A.1.b", но буквы "I", "A" и "b" не являются числовыми (тип None ) и не имеют числового значения.

Шестнадцатеричные цифры

Шестнадцатеричные символы — это символы в серии с шестнадцатеричными значениями 0...9ABCDEF (шестнадцать символов, десятичное значение 0–15). Свойство символа Hex_Digit устанавливается в значение Yes, когда символ находится в такой серии:

Сорок четыре символа обозначены как Hex_Digit . Символы в блоке Basic Latin также обозначены как ASCII_Hex_Digit .

В Unicode нет отдельных символов для шестнадцатеричных значений. Следствием этого является то, что при использовании обычных символов невозможно определить, подразумевается ли шестнадцатеричное значение или подразумевается ли значение вообще. Это должно определяться на более высоком уровне, например, путем добавления 0x к шестнадцатеричному числу или по контексту. Единственная особенность заключается в том, что Unicode может отмечать, может ли последовательность быть или не быть шестнадцатеричным значением.

Блокировать

Блок это уникальный поименованный, непрерывный диапазон кодовых точек. Он идентифицируется первой и последней кодовой точкой. Блоки не перекрываются . Блок может содержать зарезервированные, не назначенные и т. д. кодовые точки. Каждый назначенный символ имеет одно значение «имя блока» из 338 имен, назначенных в версии Unicode 16.0. Неназначенные кодовые точки за пределами существующего блока имеют значение по умолчанию «No_block».

Сценарий

Каждый назначенный символ может иметь одно значение для своего свойства "Script", обозначающее, к какому скрипту он принадлежит. [20] Значение представляет собой четырехбуквенный код в диапазоне Aaaa-Zzzz, как указано в ISO 15924, который сопоставлен с системой письма . За исключением случаев описания предыстории и использования скрипта, Unicode не использует связь между скриптом и языками , которые его используют. Таким образом, "Hebrew" относится к еврейскому скрипту, а не к еврейскому языку.

Специальный код Zyyy для "Common" допускает одно значение для символа, который используется в нескольких скриптах. Код Zinh "Inherited script", используемый для объединения символов и некоторых других специальных кодовых точек, указывает, что символ "наследует" свою идентичность скрипта от символа, с которым он объединен. (Ранее Unicode использовал для этой цели частный код Qaai.) Код Zzzz "Unknown" используется для всех символов, которые не принадлежат скрипту (т. е. значение по умолчанию), таких как символы и символы форматирования. В целом, символы одного скрипта могут быть разбросаны по нескольким блокам, как латинские символы . И наоборот: несколько скриптов могут присутствовать в одном блоке, например, блок Letterlike Symbols содержит символы из латинского, греческого и общего скриптов.

Если Script равен "" (пустой), то согласно Unicode символ не принадлежит к скрипту. Это относится к символам, поскольку существующие коды скрипта ISO "Zmth" (математическая нотация), "Zsym" (символ) и "Zsye" (символ, вариант эмодзи) не используются в Unicode. Свойство "Script" также пусто для кодовых точек, которые не являются типографскими символами, такими как элементы управления, заменители и кодовые точки частного использования.

Если в ISO 15924 есть определенное имя псевдонима письма, оно используется в имени символа: U+0041 A ЛАТИНСКАЯ ЗАГЛАВНАЯ БУКВА A и U+05D0 א ЕВРЕЙСКАЯ БУКВА ALEF .

Свойства нормализации

Разложения, тип разложения, канонический объединяющий класс, исключения композиции и многое другое.

Возраст

Age — это версия Стандарта, в которой впервые была обозначена кодовая точка. Номер версии сокращается до нумерации major.minor, хотя используются более подробные номера версий: версии 4.0.0 и 4.0.1 обе называются 4.0 как Age. Учитывая выпуски, Age может быть из диапазона: 1.1, 2.0, 2.1, 3.0, 3.1, 3.2, 4.0, 4.1, 5.0, 5.1, 5.2, 6.0, 6.1, 6.2, 6.3, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 12.1, 13.0, 14.0, 15.0, 15.1 и 16.0. [21] Длинные значения для Age начинаются с буквы V и используют подчеркивание вместо точки: например, V1_1. [2] Кодовые точки без специально назначенного значения возраста имеют значение «NA» с длинной формой «Unassigned».

Устаревший

После определения символа он не будет удален или переназначен. [22] Однако символ может быть объявлен устаревшим , что означает, что его «использование настоятельно не рекомендуется». [23] Начиная с версии Unicode 15.1, следующие пятнадцать символов являются устаревшими: [24]

Границы

Стандарт Unicode определяет следующие свойства, связанные с границами:

Псевдоним

Unicode может назначать псевдонимы кодовым точкам. Эти имена уникальны среди всех имен (включая обычные), поэтому их можно использовать в качестве идентификатора. Существует пять возможных причин для добавления псевдонима:

1. Аббревиатура
Часто встречающиеся сокращения или аббревиатуры для управляющих кодов, символов форматирования, пробелов и селекторов вариантов.
Например, U+00A0 NO-BREAK SPACE имеет псевдоним NBSP . Иногда представлен в рамке:  
НБСП
.
2. Контроль
Имена ISO 6429 для функций управления C0 и C1, а также аналогичные часто встречающиеся имена добавляются в качестве псевдонима к символу.
Например, U+0008 <control-0008> имеет псевдоним BACKSPACE .
3. Исправление
Это исправление «серьёзной проблемы» в имени основного персонажа, обычно ошибки.
Например, U+2118SCRIPT CAPITAL P на самом деле является строчной буквой p, поэтому ей присвоен псевдоним WEIERSTRASS ELLIPTIC FUNCTION : «на самом деле это имеет форму строчной каллиграфической буквы p, несмотря на ее название, и благодаря псевдониму добавляется правильное написание». В описаниях с предшествующим символом ※ .
4. Альтернативный
Широко используемое альтернативное имя персонажа.
Пример: U+FEFF ZERO WIDTH NO-BREAK SPACE имеет альтернативный BYTE ORDER MARK .
5. Вымысел
Несколько задокументированных меток для контрольных кодовых точек C1, которые на самом деле никогда не были одобрены ни в одном стандарте ( фикция = притворство, вымысел).
Например, U+0099 <control-0099> имеет псевдоним figment SINGLE GRAPHIC CHARACTER INTRODUCER . Это название является архитектурной концепцией из ранних проектов ISO/IEC 10646-1, но оно никогда не было одобрено и стандартизировано.

Внешние ссылки

Ссылки

  1. ^ abcde "Стандарт Unicode версии 16". Консорциум Unicode. Сентябрь 2024 г. Получено 13 сентября 2024 г.
  2. ^ abc "Приложение к стандарту Unicode № 44: База данных символов Unicode". Unicode . 2024-08-27.
  3. ^ "Приложение к стандарту Unicode № 44: База данных символов Unicode, 4.2.3 Диапазоны кодовых точек". Unicode . 2024-08-27.
  4. ^ UnicodeData.txt
  5. ^ "UCD: Псевдонимы имен". База данных символов Unicode . Консорциум Unicode. 2024-04-24.
  6. ^ "Стандарты дизайна персонажей – космические персонажи". Стандарты дизайна персонажей . Microsoft . 1998–1999. Архивировано из оригинала 14 марта 2010 г. Получено 2009-05-18 .
  7. ^ The Unicode Standard 5.0, печатное издание, стр. 205; также доступно в "Глава 6 — Системы письма и пунктуация" (PDF) . The Unicode Standard 5.0, электронное издание. Unicode Consortium . 2006-07-14. стр. 11 (205) . Получено 2022-12-22 .
  8. ^ "Общая пунктуация" (PDF) . Стандарт Unicode 5.1 . Unicode Inc . 1991–2008 . Получено 2009-05-13 .
  9. ^ Сарджент, Мюррей III (2006-08-29). «Unicode Almostly Plain Text Encoding of Mathematics (Version 2)». Unicode Technical Note #28 . Unicode Inc . стр. 19–20 . Получено 2009-05-19 .
  10. ^ Гиллам, Ричард (2002). Unicode Demystified: A Practical Programmer's Guide to the Encoding Standard . Addison-Wesley. ISBN 0-201-70052-2.
  11. ^ ab Hickson, Ian . "12.5 Ссылки на именованные символы". Стандарт HTML . WHATWG .
  12. ^ Wolfram . "\[NegativeThickSpace]". Документация по языку Wolfram .
  13. ^ Вольфрам . "\[NegativeMediumSpace]". Документация по языку Wolfram .
  14. ^ Вольфрам . "\[NegativeThinSpace]". Документация по языку Wolfram .
  15. ^ Вольфрам . "\[NegativeVeryThinSpace]". Документация по языку Wolfram .
  16. ^ Faltstrom, P., ред. (август 2010 г.). "Zero Width Non-Joiner". Кодовые точки Unicode и интернационализированные доменные имена для приложений (IDNA). IETF . раздел A.1. doi : 10.17487/RFC5892 . RFC 5892. Получено 4 сентября 2019 г.
  17. ^ Фальтстром, П., ред. (август 2010 г.). "Zero Width Joiner". Кодовые точки Unicode и интернационализированные доменные имена для приложений (IDNA). IETF . раздел A.2. doi : 10.17487/RFC5892 . RFC 5892. Получено 4 сентября 2019 г.
  18. ^ «Приложение № 44 к стандарту Unicode, База данных символов Unicode».
  19. ^ ab "Приложение № 9 к стандарту Unicode: Двунаправленный алгоритм Unicode". Стандарт Unicode . 2024-09-02.
  20. ^ "Приложение № 24 к стандарту Unicode: свойство шрифта Unicode". Стандарт Unicode . 2024-07-31.
  21. ^ "UCD: Derived Age". База данных символов Unicode . Консорциум Unicode. 2024-04-30.
  22. ^ "Политики стабильности кодировки символов Unicode". Unicode . Консорциум Unicode . 2024-01-09 . Получено 2024-01-13 . После кодирования символа он не будет перемещен или удален.
  23. ^ "Стандарт Unicode, D13 Устаревший символ". 2024 . Получено 2024-09-13 .
  24. ^ "PropList-16.0.0.txt". Unicode . Unicode Consortium . 2024-05-31 . Получено 2024-09-13 .
  25. ^ "Глава 23.3: Устаревшие символы формата". 2024 . Получено 13 сентября 2024 г.
  26. ^ "23.9: Символы тегов, устаревшее использование для языковых тегов". 2024 . Получено 13 сентября 2024 г.