stringtranslate.com

Символы совместимости с Юникодом

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

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

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

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

Свойство разложения совместимости для 5402 символов совместимости Юникода [ когда? ] включает ключевое слово, которое делит символы совместимости на 17 логических групп. Эти символы с разложением совместимости, но без ключевого слова, называются каноническими разлагаемыми символами, и эти символы не являются символами совместимости. Ключевые слова для совместимости разлагаемых символов включают: <начальный>, <медиальный>, <конечный>, <изолированный>, <широкий>, <узкий>, <маленький>, <квадратный>, <вертикальный>, <круг>, <без разрыва> , <фракция>, <sub>, <super> и <compat>. Эти ключевые слова дают некоторую информацию об отношении между символом совместимости и его последовательностью символов разложения совместимости. Совместимость персонажей делится на три основные категории:

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

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

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

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

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

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

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

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

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

В совокупности эти символы совместимости, включенные для неполных реализаций Unicode, составляют 3779 из 5402 назначенных символов совместимости. К ним относятся все символы совместимости, отмеченные ключевыми словами <начальный>, <средний>, <конечный>, <изолированный>, <фракция>, <широкий>, <узкий>, <маленький>, <вертикальный>, <квадратный> . Кроме того, он включает почти все канонические символы и большинство символов совместимости ключевых слов <compat> (исключения включают символы ключевых слов <compat> для вложенных буквенно-цифровых символов, вложенных иероглифов и тех, которые обсуждаются в § Семантически различные символы).

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

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

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

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

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

Символы совместимости форматированного текста составляют 1451 из 5402 символов совместимости. К ним относятся все символы совместимости, отмеченные ключевыми словами <circle> и <font> (кроме трех, перечисленных ниже в семантически различных символах); 11 вариантов пробелов из <compat> и канонических символов; и некоторые ключевые слова <надстрочный индекс> и <нижний индекс> из блока «Верхние индексы и нижние индексы».

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

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

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

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

Unicode также обозначает двадцать два (22) других буквоподобных символа как символы совместимости.

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

Наконец, Unicode обозначает римские цифры как эквивалент совместимости латинским буквам, имеющим те же глифы. [ нужна цитата ]

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

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

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

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

К сожалению, даже внутри блоков совместимости имеется небольшое количество символов, которые сами по себе не являются символами совместимости и поэтому могут сбить с толку авторов. Блок «Закрытые буквы и месяцы CJK» содержит один несовместимый символ: «корейский стандартный символ» (㉿ U+327F). Этот символ и еще 12 символов были включены в блоки по неизвестным причинам. Блок «Идеограммы совместимости CJK» содержит следующие несовместимые унифицированные иероглифы Хань:

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

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

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

Алфавитные формы презентаций (1)

  1. Ивритский пункт Иудео-испанский Варика (U+FB1E): ﬞ. Это вариант глифа еврейского слова Point Rafe (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), т.е. بسم الله الرحمان الرحيم [5] (Аналогично, коды U+FDFA и U+FDFB для двух других арабских лигатур, 21 и 9 символы соответственно.)
  4. «Арабский хвостовой фрагмент» (U + FE73): ﹳ для поддержки текстовых систем без контекстной обработки глифов.

Формы совместимости CJK (две из которых связаны с унифицированным иероглифом 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) . Стандарт Юникод 6.0.0 .
  2. ^ Консорциум Unicode Глоссарий Unicode
  3. ^ Консорциум Unicode (2010). Стандарт Юникод, версия 6.0.0 (PDF) . Аддисон-Уэсли Профессионал. п. 212. ИСБН 978-0321480910.
  4. ^ ИРГН 1218
  5. ^ Таблица Unicode FB50-FDFF (PDF) .

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