stringtranslate.com

Совместимость символов Unicode

В Unicode и UCS символ совместимости — это символ, который кодируется исключительно для поддержания двусторонней конвертируемости с другими, часто более старыми стандартами. [1] Как говорится в глоссарии Unicode:

Символ, который не был бы закодирован, если бы не совместимость и возможность преобразования в другие стандарты [2]

Хотя совместимость используется в именах, она не отмечена как свойство. Однако определение сложнее, чем показывает глоссарий. Одним из свойств, присвоенных символам консорциумом Unicode, является разложение символов или разложение совместимости . Более пяти тысяч символов имеют разложение совместимости, сопоставляющее этот символ совместимости с одним или несколькими другими символами UCS. Устанавливая свойство разложения символа, Unicode устанавливает этот символ как символ совместимости. Причины этих обозначений совместимости разнообразны и более подробно обсуждаются ниже. Термин разложение иногда сбивает с толку, поскольку разложение символа может быть в некоторых случаях синглтоном. В этих случаях разложение одного символа — это просто другой приблизительно (но не канонически) эквивалентный символ.

Совместимость типов символов и ключевых слов

Свойство разложения совместимости для 5402 символов совместимости Unicode [ when? ] включает ключевое слово, которое делит символы совместимости на 17 логических групп. Символы с разложением совместимости, но без ключевого слова, называются каноническими разложимыми символами, и эти символы не являются символами совместимости. Ключевые слова для разложимых символов совместимости включают: <initial>, <medial>, <final>, <isolated>, <wide>, <narrow>, <small>, <square>, <vertical>, <circle>, <noBreak>, <fraction>, <sub>, <super> и <compat>. Эти ключевые слова дают некоторое представление о связи между символом совместимости и его последовательностью символов разложения совместимости. Символы совместимости делятся на три основные категории:

  1. Символы, соответствующие нескольким альтернативным формам глифов и предварительно составленным диакритическим знакам для поддержки реализаций программного обеспечения и шрифтов, которые не включают в себя полные возможности компоновки текста Unicode.
  2. Символы, включенные из других наборов символов или иным образом добавленные в UCS, которые представляют собой форматированный текст, а не простой текст, предусмотренный стандартом Unicode.
  3. Некоторые другие символы, которые семантически различны, но визуально похожи .

Поскольку эти семантически различные символы могут отображаться с помощью глифов, похожих на глифы других символов, программное обеспечение для обработки текста должно попытаться устранить возможную путаницу ради конечных пользователей. При сравнении и сопоставлении (сортировке) текстовых строк различные формы и варианты расширенного текста символов не должны влиять на результаты обработки текста. Например, пользователи программного обеспечения могут быть сбиты с толку при выполнении поиска на странице для заглавной латинской буквы «I», и их программное приложение не может найти визуально похожую римскую цифру «Ⅰ».

Типы сопоставлений совместимости

Замена и композиция глифов

Некоторые символы совместимости совершенно необязательны для программного обеспечения обработки и отображения текста, соответствующего стандарту Unicode. К ним относятся:

Лигатуры
Лигатуры, такие как 'ffi' в латинском алфавите, часто кодировались как отдельный символ в устаревших наборах символов. Подход Unicode к лигатурам заключается в том, чтобы рассматривать их как форматированный текст и, если включено, обрабатывать их посредством замены глифов.
Составные римские цифры
Например, римская цифра двенадцать ('Ⅻ': U+216B) может быть разложена на римскую цифру десять ('Ⅹ': U+2169) и две римские цифры единицы ('Ⅰ': U+2160). Предварительно составленные символы находятся в блоке «Формы чисел» .
Предварительно составленные дроби
Эти разложения имеют ключевое слово <fraction>. Полностью соответствующий обработчик текста должен [3] отображать вульгарную дробь ¼ (U+00BC) идентично составной дроби 1⁄4 (цифра 1 с дробной косой чертой U+2044 и цифрой 4). Предварительно составленные символы находятся в блоке Number Forms .
Контекстные глифы или формы
Они возникают в первую очередь в арабском письме. Используя шрифты с возможностями замены глифов, такие как OpenType и TrueTypeGX , программное обеспечение, соответствующее Unicode, может заменять соответствующие глифы для одного и того же символа в зависимости от того, появляется ли этот символ в начале, конце, середине слова или изолированно. Такая замена глифов также необходима для вертикальной (сверху вниз) компоновки текста для некоторых восточноазиатских языков. В этом случае глифы должны быть заменены или синтезированы для широких, узких, маленьких и квадратных форм глифов. Несоответствующее программное обеспечение или программное обеспечение, использующее другие наборы символов, вместо этого использует несколько отдельных символов для одной и той же буквы в зависимости от ее положения: еще больше усложняя обработку текста.

UCS, свойства символов Unicode и алгоритмы Unicode предоставляют программным реализациям все необходимое для правильного отображения этих символов из их эквивалентов декомпозиции. Поэтому эти разложимые символы совместимости становятся избыточными и ненужными. Их существование в наборе символов требует дополнительной обработки текста для обеспечения правильного сравнения и сопоставления текста (см. Нормализация Unicode ). Более того, эти символы совместимости не предоставляют никакой дополнительной или отличной семантики. Эти символы также не обеспечивают визуально отличной визуализации при условии, что макет текста и шрифты соответствуют Unicode. Кроме того, ни один из этих символов не требуется для конвертации в другие наборы символов, поскольку транслитерация может легко сопоставлять разложенные символы с предварительно составленными аналогами в другом наборе символов. Аналогично, контекстные формы, такие как конечная арабская буква, могут быть сопоставлены на основе ее положения в слове с соответствующим символом формы устаревшего набора символов.

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

  1. Составьте диакритические графемы из буквенных символов и одного или нескольких отдельных комбинирующих диакритических знаков.
  2. Замените (по усмотрению автора или читателя) лигатуры и контекстные варианты глифов.
  3. Расположите текст CJKV вертикально (по усмотрению автора или читателя), заменив глифами маленькие, вертикальные, узкие, широкие квадратные формы, используя данные шрифта или синтезируя их по мере необходимости.
  4. Объедините дроби, используя символ « дробь » (⁄ U+2044) и любые другие произвольные символы.
  5. Объедините « Комбинированную длинную косую черту » (̸U+0338) с другими символами: например, ∄ или ∄ вместо ∄ (U+2203).

Все вместе эти символы совместимости, включенные для неполных реализаций Unicode, составляют 3779 из 5402 обозначенных символов совместимости. Они включают все символы совместимости, отмеченные ключевыми словами <initial>, <medial>, <final>, <isolated>, <fraction>, <wide>, <narrow>, <small>, <vertical>, <square>. Также он включает почти все канонические и большинство символов совместимости с ключевыми словами <compat> (исключения включают те символы <compat> для вложенных буквенно-цифровых символов, вложенных идеограмм и те, которые обсуждаются в § Семантически различные символы).

Совместимость символов с форматированным текстом

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

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

Математические буквенно-цифровые символы
Эти символы являются просто клонами латинского и греческого алфавитов и индийско-арабских десятичных цифр, повторяющихся в 15 различных шрифтах. Они предназначены в качестве произвольной палитры для математической нотации. Однако они, как правило, подрывают различие между кодированием символов и кодированием визуальных глифов, а также цели Unicode по поддержке только простых текстовых символов. Такой альтернативный стиль для палитры математических символов можно было бы легко создать с помощью протоколов расширенного текста.
Вложенные буквенно-цифровые и идеографические символы (маркеры)
Это символы, включенные в первую очередь для маркеров списков. Они не являются обычными текстовыми символами. Более того, использование других протоколов расширенного текста более целесообразно, поскольку набор вложенных буквенно-цифровых символов или идеограмм, предусмотренных в UCS, ограничен.
Буквы, цифры и идеограммы в кружках
Обведенные формы также, вероятно, можно использовать в качестве маркеров. Опять же, использование символов вместе с протоколами расширенного текста для обводки строк символов является более гибким.
Пробелы и неразрывные пробелы различной ширины
Эти символы являются просто вариантами форматированного текста основного пробела (U+0020) и неразрывного пробела (U+00A0). Вместо этого следует использовать другие протоколы форматированного текста, такие как атрибуты трекинга, кернинга или интервала между словами.
Некоторые символы надстрочных и подстрочных форм
Многие из символов нижнего и верхнего индекса на самом деле являются семантически отличными символами из Международного фонетического алфавита и других систем письма и на самом деле не попадают в категорию расширенного текста. Однако другие просто представляют собой формы представления расширенного текста других греческих, латинских и цифровых символов. Эти символы верхнего и нижнего индекса расширенного текста, следовательно, по праву относятся к этой категории символов совместимости с расширенным текстом. Большинство из них находятся в блоках «Надстрочные и подстрочные индексы» или «Базовая латиница».

Для всех этих символов совместимости с форматированным текстом отображение глифов обычно отличается от их символов разложения совместимости (связанных). Однако они считаются символами совместимости и не рекомендуются к использованию консорциумом Unicode, поскольку они не являются символами обычного текста, что Unicode стремится поддерживать с помощью UCS и связанных с ним протоколов. Форматированный текст должен обрабатываться через не-Unicode-протоколы, такие как HTML, CSS, RTF и другие подобные протоколы.

Символы совместимости с форматированным текстом включают 1451 [ требуется ссылка ] из 5402 символов совместимости. Они включают все символы совместимости, отмеченные ключевыми словами <circle> и <font> (за исключением трех, перечисленных в семантически различных ниже); 11 вариантов пробелов из <compat> и канонических символов; и некоторые из ключевых слов <superscript> и <subscript> из блока "Superscripts and Subscripts".

Семантически различные символы

Многие символы совместимости являются семантически различными символами, хотя они могут разделять репрезентативные глифы с другими символами. Некоторые из этих символов могли быть включены, потому что большинство других наборов символов были сосредоточены на одном алфавите или системе письма. Так, например, ISO и другие латинские наборы символов, вероятно, включали символ для π (пи), поскольку при фокусировке в первую очередь на одной системе письма или алфавите эти наборы символов в противном случае не имели бы символов для общего математического символа π;. Однако с Unicode математики могут свободно использовать символы из любого известного алфавита в мире для обозначения математического набора или математической константы. На сегодняшний день Unicode добавил только конкретную семантическую поддержку для нескольких таких математических констант (например, постоянная Планка, U+210E, и постоянная Эйлера, U+2107, обе из которых Unicode считает символами совместимости). Поэтому Unicode обозначает несколько математических символов, основанных на буквах греческого и еврейского языков, как символы совместимости. К ним относятся:

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

Хотя Unicode не намерен кодировать такие единицы измерения, репертуар включает шесть (6) таких символов, которые не должны использоваться авторами: вместо этого следует использовать разложения символов. [4] [5]

В Unicode также обозначены 22 других буквоподобных символа как символы совместимости. [5]

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

Наконец, Unicode определяет римские цифры как совместимый эквивалент латинских букв, которые имеют те же глифы. [ необходима ссылка ]

Римская цифра Одна Тысяча на самом деле имеет третий символ, представляющий третью форму или глиф для той же семантической единицы: Одна Тысяча CD (ↀ U+2180). Из этого глифа можно увидеть, откуда могла возникнуть практика использования латинской M. Как ни странно, хотя Unicode объединяет римские цифры со знаковым значением с очень разными [ нужна цитата ] (хотя и визуально похожими) латинскими буквами, индийские арабские цифры с позиционным значением десятичных цифр повторяются 24 раза (всего 240 кодовых точек для 10 цифр) по всей UCS без какого-либо реляционного или декомпозиционного отображения между ними.

Наличие этих 167 семантически различных, хотя и визуально похожих символов (плюс пограничные 11 символов на основе еврейских и греческих букв и 6 символов единиц измерения) среди разложимых символов усложняет тему символов совместимости. Стандарт Unicode не рекомендует авторам контента использовать символы совместимости. Однако в некоторых специализированных областях эти символы важны и весьма похожи на другие символы, которые не были включены в число символов совместимости. Например, в определенных академических кругах использование римских цифр в отличие от латинских букв, которые имеют те же глифы, ничем не отличалось бы от использования клинописных цифр или древнегреческих цифр. Свертывание римских цифр до символов латинских букв устраняет семантическое различие. Похожая ситуация существует для символов фонетического алфавита, которые используют подстрочные или надстрочные позиционные глифы. В специализированных кругах, которые используют фонетические алфавиты, авторы должны иметь возможность делать это, не прибегая к протоколам расширенного текста. В качестве другого примера символы совместимости ключевого слова «круг» часто используются для описания игры Го . Однако такое использование совместимых персонажей представляет собой исключение, когда у автора есть особая причина использовать нежеланных персонажей.

Совместимость блоков

Несколько блоков символов Unicode включают либо полностью, либо почти полностью все символы совместимости (U+F900–U+FFEF, за исключением несимволов). Блоки совместимости не содержат ни одного семантически различных символов совместимости, за исключением только одного: символа валюты риал (﷼ U+FDFC), поэтому совместимые разложимые символы в блоках совместимости однозначно попадают в набор нерекомендуемых символов. Unicode рекомендует авторам использовать вместо этого эквиваленты разложения совместимости простого текста и дополнять эти символы разметкой расширенного текста. Этот подход гораздо более гибкий и открытый, чем использование конечного набора обведенных или заключенных в кружок буквенно-цифровых символов, чтобы привести только один пример.

Даже в блоках совместимости есть небольшое количество символов, которые сами по себе не являются совместимыми символами и поэтому могут сбивать с толку авторов. Блок «Enclosed CJK Letters and Months» содержит один несовместимый символ: «Korean Standard Symbol» (㉿ U+327F). Этот символ и 12 других символов были включены в блоки по неизвестным причинам. Блок «CJK Compatibility Ideographs» содержит следующие несовместимые унифицированные идеограммы Хань:

  1. (U+FA0E): 﨎
  2. (U+FA0F): 﨏
  3. (У+ФА11): 﨑
  4. (У+ФА13): 﨓
  5. (У+ФА14): 﨔
  6. (У+ФА1Ф): 﨟
  7. (U+FA21): 﨡
  8. (U+FA23): 﨣
  9. (U+FA24): 﨤
  10. (U+FA27): 﨧
  11. (U+FA28): 﨨
  12. (U+FA29): 﨩

Эти тринадцать символов не являются символами совместимости, и их использование никоим образом не препятствуется. Однако U+27EAF 𧺯, как и U+FA23 﨣, ошибочно закодирован в CJK Unified Ideographs Extension B. [6] В любом случае нормализованный текст никогда не должен содержать как U+27EAF 𧺯, так и U+FA23 﨣; эти кодовые точки представляют один и тот же символ, закодированный дважды.

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

Алфавитные формы представления (1)

  1. Еврейская точка иудео-испанская варика (U+FB1E): ﬞ. Это вариант глифов еврейской точки рафе (U+05BF): ֿ, хотя Unicode не обеспечивает совместимого отображения.

Арабские формы представления (4)

  1. «Украшенная левая скобка» (U+FD3E): ﴾. Вариант глифа для U+0029 ')'
  2. «Украшенная правая скобка» (U+FD3F): ﴿. Вариант глифа для U+0028 '('
  3. «Лигатура Бисмилла ар-Рахман ар-Рахим» (U+FDFD): ﷽. Бисмилла Ар-Рахман Ар-Рахим — это лигатура для Бех (U+0628), Син (U+0633), Мим (U+0645), Космос (U+0020), Алеф (U+0627), Лам (U+). 0644), Лам (U+0644), Хе (U+0647), Космос (U+0020), Алеф (U+0627), Лам (U+0644), Рех (U+0631), Ха (U+062D) ), Мим (U+0645), Алеф (U+0627), Полдень (U+0646), Космос (U+0020), Алеф (U+0627), Лам (U+0644), Рех (U+0631) , Ха (U+062D), Да (U+064A), Мим (U+0645), то есть بسم الله الرحمان الرحيم [7] (Аналогично, U+FDFA и U+FDFB кодируют две другие арабские лигатуры, состоящие из 21 и 9 символов соответственно.)
  4. «Арабский фрагмент хвоста» (U+FE73): ﹳ для поддержки текстовых систем без контекстной обработки глифов

Формы совместимости CJK (2, которые обе связаны с унифицированным идеографическим обозначением CJK: U+4E36 丶)

  1. Кунжутная точка (U+FE45): ﹅
  2. Белая кунжутная точка (U+FE46): ﹆

Вложенные буквенно-цифровые символы (21 вариант форматированного текста)

  1. 10 отрицательных чисел в кружках (0 и от 11 до 20) (U+24FF и от U+24EB до U+24F4): ⓫ – ⓴
  2. 11 цифр в двойном кружке (от 0 до 10) (от U+24F5 до U+24FE): ⓵ – ⓾

Нормализация

Нормализация — это процесс, при котором программное обеспечение, соответствующее стандарту Unicode, сначала выполняет полную совместимую декомпозицию (или композицию) перед выполнением сравнений или сопоставлением текстовых строк.

Смотрите также

Ссылки

  1. ^ "Глава 2.3: Совместимость символов" (PDF) . Стандарт Unicode 6.0.0 .
  2. ^ Консорциум Unicode Глоссарий Unicode
  3. ^ Консорциум Unicode (2010). Стандарт Unicode, версия 6.0.0 (PDF) . Addison-Wesley Professional. стр. 212. ISBN 978-0321480910.
  4. ^ Омега, мю, Ангстрем, Кельвин: Консорциум Unicode (2017-05-30). «Технический отчет Unicode № 25 / Поддержка Unicode для математики». стр. 11.
  5. ^ ab ≈ обозначает декомпозицию совместимости согласно https://www.unicode.org/versions/Unicode15.0.0/ch24.pdf и показано в кодовых таблицах по адресу https://www.unicode.org/charts/nameslist/n_2100.html
  6. ^ ИРГН 1218
  7. ^ Таблица Unicode FB50-FDFF (PDF).

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