Символы совместимости с Юникодом
![]() | В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
В Unicode и UCS символ совместимости — это символ, который кодируется исключительно для обеспечения двусторонней конвертируемости с другими, часто более старыми стандартами. [1] Как говорится в глоссарии Unicode:
Символ, который не был бы закодирован, если бы не совместимость и возможность двусторонней конвертации с другими стандартами. [2]
Хотя совместимость используется в именах, она не помечается как свойство. Однако это определение более сложное, чем показывает глоссарий. символов Одним из свойств, присвоенных символам консорциумом Unicode, является декомпозиция или декомпозиция совместимости . Более пяти тысяч символов имеют разложение совместимости, сопоставляющее этот символ совместимости с одним или несколькими другими символами UCS. Установив свойство разложения символа, Unicode устанавливает этот символ как символ совместимости. Причины этих обозначений совместимости различны и более подробно обсуждаются ниже. Термин «декомпозиция» иногда сбивает с толку, поскольку в некоторых случаях декомпозиция символа может быть одноэлементной. В этих случаях декомпозиция одного символа представляет собой просто другой приблизительно (но не канонически) эквивалентный символ.
Совместимость типов символов и ключевых слов [ править ]
![]() | В этом разделе рассказывается о событии или теме , которая может быть неактуальной, но не указывает, о какой версии Unicode идет речь . |
Свойство разложения совместимости для 5402 символов совместимости Юникода. [ когда? ] включает ключевое слово, которое делит символы совместимости на 17 логических групп. Эти символы с разложением совместимости, но без ключевого слова, называются каноническими разлагаемыми символами, и эти символы не являются символами совместимости. Ключевые слова для разлагаемых символов совместимости включают: <начальный>, <медиальный>, <конечный>, <изолированный>, <широкий>, <узкий>, <маленький>, <квадратный>, <вертикальный>, <круг>, <без разрыва> , <фракция>, <sub>, <super> и <compat>. Эти ключевые слова дают некоторое указание на связь между символом совместимости и его последовательностью символов разложения совместимости. Совместимость персонажей делится на три основные категории:
- Символы, соответствующие множеству альтернативных форм глифов, и заранее составленные диакритические знаки для поддержки реализаций программного обеспечения и шрифтов, которые не включают полные возможности макетирования текста в Юникоде.
- Символы, включенные из других наборов символов или иным образом добавленные в UCS, представляют собой форматированный текст, а не обычный текст, предназначенный для Unicode.
- Некоторые другие символы, семантически разные, но визуально похожие .
Поскольку эти семантически разные символы могут отображаться глифами, похожими на глифы других символов, программное обеспечение для обработки текста должно попытаться устранить возможную путаницу ради конечных пользователей. При сравнении и сопоставлении (сортировке) текстовых строк различные формы и варианты символов форматированного текста не должны изменять результаты обработки текста. Например, пользователи программного обеспечения могут быть сбиты с толку при поиске на странице заглавной латинской буквы «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. Программное обеспечение должно иметь возможность:
- Составьте графемы с диакритическими знаками из буквенных символов и одного или нескольких отдельных сочетающихся диакритических знаков.
- Замените (по усмотрению автора или читателя) лигатуры и контекстные варианты знаков.
- Текст CJKV располагайте вертикально (на усмотрение автора или читателя), заменяя глифами мелкие, вертикальные, узкие, широкие квадратные формы либо на основе данных шрифта, либо синтезированных по мере необходимости.
- Объедините дроби, используя символ « Дробная косая черта » (⁄ U+2044) и любые другие произвольные символы.
- Объедините наложение длинной солидуса ( ̸ 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 обозначает несколько математических символов, основанных на буквах греческого и иврита, как символы совместимости. К ним относятся:
- Символы на основе еврейских букв (4): алеф (ℵ U+2135), бет (ℶ U+2136), гимель (ℷ U+2137) и далет (ℸ U+2138).
- Символы на основе греческих букв (7): бета (ϐ U+03D0), тета (ϑ U+03D1), фи (ϖ U+03D5), пи (ϖ U+03D6), каппа (ϰ U+03F0), ро ( ϱ U+03F1), заглавная тета (ϴ U+03F4)
Хотя эти символы совместимости отличаются от символов разложения совместимости только добавлением слова «символ» к их имени, они действительно представляют давние отдельные значения в письменной математике. Однако для всех практических целей они имеют ту же семантику, что и эквивалентные им греческие или еврейские буквы. Их можно считать пограничными семантически различимыми символами, поэтому они не включаются в общее количество.
Хотя Unicode не намерен кодировать такие единицы измерения, репертуар включает шесть (6) таких символов, которые не должны использоваться авторами: вместо этого следует использовать разложение символов. [4] [5]
- Символы единиц измерения (6): Ангстрем U+212B Å : вместо этого используйте U+00C5), Ом ( U+2126 Ом : вместо этого используйте U+03A9), Кельвин ( U+212A K : вместо этого используйте U+004B), градусы Фаренгейта (U+2109 ℉: вместо этого используйте U+00B0 и U+0046), Цельсия (U+2103 ℃: вместо этого используйте U+00B0 и U+0043), Micro Sign (U+00B5 µ: вместо этого используйте U+03BC)
Unicode также обозначает 22 других буквоподобных символа как символы совместимости. [5]
- Другие символы, основанные на греческих буквах (4): полулунный эпсилон (ϵ U+03F5), полулунная сигма (ϲ U+03F2), заглавная полулунная сигма (Ϲ U+03F9), ипсилон с крючком (ϒ U+03D2).
- Математические константы (3): постоянная Эйлера ( ℇ U+2107), постоянная Планка (ℎ U+210E), приведенная постоянная Планка (ℏ U+210F),
- Символы валют (2): знак рупии (₨ U+20A8), знак риала (﷼ U+FDFC).
- Пунктуация (4): одна точка ( U+2024), неразрывный пробел (U+00A0), неразрывный дефис (U+2011), тибетский знак-разделитель tsheg bstar (U+0F0C).
- Другие буквоподобные символы (10): источник информации (ℹ U+2139), учетная запись (℀ U+2100), обращение к субъекту (℁ U+2101), забота о (℅ U+2105), cada una ( ℆ U+2106), номер (№ U+2116), телефонный знак (℡ U+2121), факсимильный знак (℻ U+213B), товарный знак (™ U+2122), знак обслуживания (℠ U+2120)
Кроме того, в некоторых сценариях для различения семантики используется положение глифа, например, верхние и нижние индексы. В этих случаях нижние и верхние индексы представляют собой не просто расширенный текст, но представляют собой отдельный символ в системе письма (всего 130).
- 112 символов, представляющих абстрактные фонемы из фонетических алфавитов, таких как Международный фонетический алфавит, используют такие позиционные глифы для обозначения семантических различий (U+1D2C – U+1D6A, U+1D78, U+1D9B – U+1DBF, U+02B0 – U+02B8). , U+02E0 – U+02E4)
- 14 символов из блока Канбун (U+3192 – U+319F)
- 1 символ из сценария Тифинаг : Знак лабиализации буквы-модификатора Тифинаг (ⵯ U+2D6F)
- 1 символ грузинского алфавита : буква-модификатор грузинского нара (ჼ U+10FC).
- мужские ( U+00BA ) и женские ( U+00AA ) порядковые указатели, включенные в дополнение Latin-1 [ нужна ссылка ] блокировать
Наконец, Unicode обозначает римские цифры как эквивалент совместимости латинским буквам, имеющим те же глифы. [ нужна ссылка ]
- Заглавные римские цифры (7): один (Ⅰ U+2160), пять (Ⅴ U+2164), десять (Ⅹ U+2169), пятьдесят (Ⅼ U+216C), сто (Ⅽ U+216D), пятьсот. (Ⅾ U+216E), Одна тысяча (Ⅿ U+216F)
- и варианты нижнего регистра (7): Один (ⅰ U + 2170), Пять (ⅴ U + 2174), Десять (ⅹ U + 2179), Пятьдесят (ⅼ U + 217C), Сто (ⅽ U + 217D), Пять. Сотня (ⅾ U+217E) и тысяча (ⅿ U+217F)
- 18 заранее составленных римских цифр в верхнем и нижнем регистре (2–4, 6–9 и 11–12).
Римская цифра «Тысяча» на самом деле имеет третий символ, представляющий третью форму или глиф той же семантической единицы: Тысяча CD (ↀ U+2180). Из этого глифа можно увидеть, откуда могла возникнуть практика использования латинской буквы М. Как ни странно, хотя Unicode объединяет римские цифры со знаком значения с совершенно разными [ нужна ссылка ] (позиционные) десятичные цифры индийского арабского языка (хотя визуально похожи) Латинские буквы, значащие повторяются 24 раза (всего 240 кодовых точек для 10 цифр) по всей UCS без какого-либо реляционного или декомпозиционного сопоставления между ними.
Присутствие этих 167 семантически различных, но визуально похожих символов (плюс 11 пограничных символов на основе еврейских и греческих букв и 6 символов единиц измерения) среди разлагаемых символов усложняет тему совместимости символов. Стандарт Unicode не рекомендует авторам контента использовать символы совместимости. Однако в некоторых специализированных областях эти символы важны и очень похожи на другие символы, не включенные в число символов совместимости. Например, в некоторых академических кругах использование римских цифр в отличие от латинских букв, имеющих те же глифы, ничем не отличается от использования клинописных цифр или древнегреческих цифр. Свертывание символов римских цифр в символы латинских букв устраняет семантическое различие. Аналогичная ситуация существует для символов фонетического алфавита, которые используют глифы, расположенные в нижнем или верхнем индексе. В специализированных кругах, использующих фонетические алфавиты, авторы должны иметь возможность делать это, не прибегая к протоколам форматированного текста. В качестве другого примера, для описания игры часто используются символы совместимости ключевого слова «круг». Идти . Однако такое использование символов совместимости представляет собой исключение, когда у автора есть особая причина использовать символы, которые в противном случае не рекомендуются.
Блоки совместимости [ править ]
Несколько блоков символов Юникода включают полностью или почти полностью все символы совместимости (U+F900–U+FFEF, за исключением несимволовых символов). Блоки совместимости не содержат ни одного из семантически различных символов совместимости, за одним исключением: символ валюты риал (﷼ U+FDFC), поэтому разлагаемые символы совместимости в блоках совместимости однозначно попадают в набор нежелательных символов. Unicode рекомендует авторам вместо этого использовать эквиваленты декомпозиции совместимости с обычным текстом и дополнять эти символы форматированной текстовой разметкой. Этот подход гораздо более гибкий и открытый, чем использование конечного набора букв и цифр в кружках или в качестве одного примера.
Даже внутри блоков совместимости имеется небольшое количество символов, которые сами по себе не являются символами совместимости и поэтому могут сбить с толку авторов. Блок «Закрытые буквы и месяцы CJK» содержит один несовместимый символ: «корейский стандартный символ» (㉿ U+327F). Этот символ и еще 12 символов были включены в блоки по неизвестным причинам. Блок «Идеограммы совместимости CJK» содержит следующие несовместимые унифицированные иероглифы Хань:
- (U+FA0E): 﨎
- (U+FA0F): 﨏
- (U+FA11):
- (U+FA13): 﨓
- (U+FA14): 﨔
- (U+FA1F): 﨟
- (U+FA21): 﨡
- (U+FA23): 﨣
- (U+FA24): 﨤
- (U+FA27): 﨧
- (U+FA28): 﨨
- (U+FA29): 﨩
Эти тринадцать символов не являются символами совместимости, и их использование ни в коем случае не препятствует. Однако U+27EAF 𧺯, то же самое, что и U+FA23 﨣, ошибочно закодировано в расширении B унифицированных иероглифов CJK. [6] В любом случае нормализованный текст никогда не должен содержать одновременно U+27EAF 𧺯 и U+FA23 﨣; эти кодовые точки представляют один и тот же символ, закодированный дважды.
Некоторые другие символы в этих блоках не имеют сопоставления совместимости, но явно предназначены для поддержки устаревших версий:
Алфавитные формы презентаций (1)
- Ивритский пункт Иудео-испанский Варика (U+FB1E): ﬞ. Это вариант глифа еврейского слова Point Rafe (U+05BF): ֿ, хотя Unicode не обеспечивает сопоставления совместимости.
Формы презентаций на арабском языке (4)
- «Изысканная левая скобка» (U+FD3E): ﴾. Вариант глифа для U + 0029 ')'
- «Изысканная правая скобка» (U+FD3F): ﴿. Вариант глифа для U+0028 '('
- «Лигатура Бисмиллах Ар-Рахман Ар-Рахим» (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 символов соответственно.)
- «Арабский хвостовой фрагмент» (U + FE73): ﹳ для поддержки текстовых систем без контекстной обработки глифов.
Формы совместимости CJK (две из которых связаны с унифицированным иероглифом CJK: U + 4E36 丶)
- Кунжутная точка (U+FE45): ﹅
- Белая кунжутная точка (U+FE46): ﹆
Закрытые буквенно-цифровые символы (21 вариант форматированного текста)
- 10 отрицательных чисел в кружках (от 0 и 11 до 20) (от U+24FF и от U+24EB до U+24F4): ⓫ – ⓴
- 11 чисел в двойном кружке (от 0 до 10) (от U+24F5 до U+24FE): ⓵ – ⓾
Нормализация [ править ]
Нормализация — это процесс, при котором программное обеспечение, совместимое с Unicode, сначала выполняет полную совместимую декомпозицию (или композицию) перед сравнением или сопоставлением текстовых строк.
См. также [ править ]
Ссылки [ править ]
- ^ «Глава 2.3: Совместимость символов» (PDF) . Стандарт Юникод 6.0.0 .
- ^ Консорциум Unicode Глоссарий Unicode
- ^ Консорциум Юникод (2010 г.). Стандарт Юникод, версия 6.0.0 (PDF) . Аддисон-Уэсли Профессионал. п. 212. ИСБН 978-0321480910 .
- ^ Омега, му, Ангстрем, Кельвин: Консорциум Юникод (30 мая 2017 г.). «Технический отчет Unicode № 25 / Поддержка Unicode для математики» . п. 11.
- ^ Jump up to: Перейти обратно: а б ≈ обозначает декомпозицию совместимости согласно https://www.unicode.org/versions/Unicode15.0.0/ch24.pdf и отображается в таблицах кодов по адресу https://www.unicode.org/charts/nameslist/n_2100.html.
- ^ ИРГН 1218
- ^ Таблица Unicode FB50-FDFF (PDF) .
Внешние ссылки [ править ]
- Нормализация (проект китайского текста) — проблемы нормализации Юникода в классическом китайском языке со списком нормализованных кодовых точек CJK.