Персонажи универсального набора символов - Universal Character Set characters
В Консорциум Unicode (UC) и Международная организация по стандартизации (ISO) сотрудничают в Универсальный набор символов (ПСК). UCS - это международный стандарт для отображения символов, используемых в естественном языке, математике, музыке и других областях, в машиночитаемые значения. Создавая это сопоставление, UCS позволяет поставщикам компьютерного программного обеспечения взаимодействовать и передавать закодированный текст UCS. струны от одного к другому. Поскольку это универсальная карта, ее можно использовать для одновременного представления нескольких языков. Это позволяет избежать путаницы с использованием нескольких устаревших кодировки символов, что может привести к тому, что одна и та же последовательность кодов будет иметь несколько значений и, следовательно, будет неправильно декодирована, если будет выбран неправильный.
UCS может кодировать более 1 миллиона символов. Каждый символ UCS абстрактно представлен кодовая точка, которое представляет собой целое число от 0 до 1,114,111, используемое для представления каждого символа во внутренней логике программного обеспечения для обработки текста (1,114,112 = 2²⁰ + 2¹⁶ или 17 × 2¹⁶, или шестнадцатеричный 110 000 кодовых точек). В Unicode 13.0, выпущенном в марте 2020 года, выделено 287 472 (26%) из этих кодовых точек, включая 143 924 (13%) назначенных символов, 137 468 (12,3%) зарезервировано для частное использование, 2,048 для суррогаты, а 66 обозначены не персонажи, в результате чего 826 640 человек (74%) остаются нераспределенными. Количество закодированных символов составляется следующим образом:
- 143 696 графических символов (некоторые из которых не имеют видимых глифов, но по-прежнему считаются графическими)
- 228 персонажи специального назначения для настройки и форматирования.
ISO поддерживает базовое отображение символов от имени символа до кодовой точки. Часто термины «символ» и «кодовая точка» используются как синонимы. Однако, когда проводится различие, кодовая точка относится к целому числу символа: то, что можно было бы считать его адресом. В то время как символ в UCS 10646 включает комбинацию кодовой точки и своего имени, Unicode добавляет множество других полезных свойств к набору символов, таких как блок, категория, сценарий и направленность.
В дополнение к UCS Unicode также предоставляет другие детали реализации, такие как:
- превосходящие сопоставления между UCS и другими наборами символов
- разные сопоставления символов и символьных строк для разных языков
- алгоритм для размещения двунаправленного текста, при котором текст в одной строке может сдвигаться слева направо и справа налево
- алгоритм складывания корпуса
Конечные пользователи компьютерного программного обеспечения вводят эти символы в программы с помощью различных методов ввода. Методы ввода могут быть через клавиатуру или графическую палитру символов.
ПСК можно разделить по-разному, например по самолет, блок, категория символа или свойство персонажа.[1]
Обзор справочника персонажей
An HTML или XML ссылка на числовой символ относится к символу по его Универсальный набор символов / Кодовая точка Unicode и использует формат
&#
nnnn;
или
Икс
хххх;
где nnnn это кодовая точка в десятичный форма, и хххх это кодовая точка в шестнадцатеричный форма. В Икс в XML-документах должен быть в нижнем регистре. В nnnn или хххх может быть любым количеством цифр и может включать в себя ведущие нули. В хххх может смешивать прописные и строчные буквы, хотя прописные буквы являются обычным стилем.
Напротив, ссылка на символьный объект относится к персонажу по имени юридическое лицо который имеет желаемый характер как его текст замены. Сущность должна быть либо предопределена (встроена в язык разметки), либо явно объявлена в Определение типа документа (DTD). Формат такой же, как и для любой ссылки на сущность:
&
имя;
где имя - имя объекта с учетом регистра. Точка с запятой обязательна.
Самолеты
Unicode и ISO делят набор кодовых точек на 17 плоскостей, каждая из которых может содержать 65536 различных символов, или всего 1114 112 символов. По состоянию на 2020 год (Unicode 13.0) ISO и Консорциум Unicode выделяли символы и блоки только в семи из 17 плоскостей. Остальные остаются пустыми и зарезервированы для использования в будущем.
Большинство персонажей в настоящее время назначены на первый план: Базовая многоязычная плоскость. Это сделано для облегчения перехода на устаревшее программное обеспечение, поскольку к базовой многоязычной плоскости можно обратиться всего за два октеты. Персонажи вне первого плана обычно используются очень редко или редко.
Каждой плоскости соответствует значение одного или двух шестнадцатеричные цифры (0-9, A-F), предшествующие четырем последним: следовательно, U + 24321 находится в плоскости 2, U + 4321 находится в плоскости 0 (неявно читается как U + 04321), а U + 10A200 будет в плоскости 16 (шестнадцатеричный 10 = десятичное 16). В пределах одной плоскости диапазон кодовых точек является шестнадцатеричным 0000-FFFF, что дает максимум 65536 кодовых точек. Самолеты ограничивают кодовые точки подмножеством этого диапазона.
Блоки
Unicode добавляет свойство блока к UCS, которое дополнительно разделяет каждую плоскость на отдельные блоки. Каждый блок представляет собой группу символов по их использованию, например «математические операторы» или «символы еврейского алфавита». При назначении символов ранее неназначенным кодовым точкам Консорциум обычно выделяет целые блоки похожих символов: например, все символы, принадлежащие одному и тому же сценарию, или все символы аналогичного назначения назначаются одному блоку. Блоки могут также поддерживать неназначенные или зарезервированные кодовые точки, когда Консорциум ожидает, что блок потребует дополнительных назначений.
Первые 256 кодовых точек в UCS соответствуют кодовым точкам ISO 8859-1, самый популярный 8-битный кодировка символов в западный мир. В результате первые 128 символов также идентичны ASCII. Хотя Unicode называет их блоками латинского алфавита, эти два блока содержат много символов, которые обычно используются за пределами латинского алфавита. В общем, не все символы в данном блоке должны принадлежать к одному и тому же сценарию, и данный сценарий может находиться в нескольких разных блоках.
Категории
Unicode присваивает каждому символу UCS общая категория и подкатегория. К общим категориям относятся: буква, знак, число, пунктуация, символ или управляющий элемент (другими словами, форматирующий или неграфический символ).
Типы включают:
- Современные, исторические и древние сценарии. По состоянию на 2020 год (Unicode 13.0) UCS определяет 154 сценария, которые используются или использовались во всем мире. Многие другие находятся на различных этапах утверждения для будущего включения UCS.[2]
- Международный фонетический алфавит. UCS выделяет несколько блоков (более 300 символов) для символов для Международный фонетический алфавит.
- Комбинирование диакритических знаков. Важным достижением Unicode при разработке UCS и связанных с ним алгоритмов обработки текста стало введение комбинирования диакритических знаков. Предоставляя акценты, которые могут сочетаться с любым буквенным символом, Unicode и UCS значительно сокращают количество необходимых символов. Хотя UCS также включает предварительно составленные символы, они были включены в первую очередь для облегчения поддержки в UCS систем обработки текста, отличных от Unicode.
- Пунктуация. Наряду с унификацией диакритических знаков UCS также стремилась унифицировать пунктуацию во всех шрифтах. Однако многие скрипты также содержат знаки препинания, если они не имеют аналогичной семантики в других скриптах.
- Символы. Многие математические, технические, геометрические и другие символы включены в UCS. Это обеспечивает отдельные символы с их собственными кодовыми точками или символами, а не полагается на переключение шрифтов для получения символических глифов.
- Валюта.
- Letterlike. Эти символы выглядят как комбинации многих распространенных букв латинского алфавита, таких как. Unicode обозначает многие из буквоподобных символов как символы совместимости, обычно потому, что они могут быть в виде обычного текста, заменяя глифы для составной последовательности символов: например, заменяя глиф ℅ на составленную последовательность символов c / o.
- Числовые формы. Числовые формы в основном состоят из заранее составленных дробей и римских цифр. Подобно другим областям составления последовательностей символов, подход Unicode предпочитает гибкость составления дробей путем объединения символов вместе. В этом случае для создания дробей числа комбинируются с символом дробной черты (U + 2044). В качестве примера гибкости, которую обеспечивает этот подход, в ПСК включены девятнадцать предварительно составленных знаков дроби. Однако существует бесконечное количество возможных дробей. При использовании составляющих символов бесконечность дробей обрабатывается 11 символами (0–9 и косая черта дроби). Никакой набор символов не может включать кодовые точки для каждой заранее составленной дроби. В идеале текстовая система должна представлять одни и те же глифы для дроби, будь то одна из заранее составленных дробей (например, ⅓) или составляющая последовательность символов (например, 1⁄3). Однако веб-браузеры, как правило, не так сложны с Unicode и обработкой текста. Это гарантирует, что предварительно составленные дроби и объединенные дроби последовательности будут выглядеть совместимыми рядом друг с другом.
- Стрелки.
- Математическая.
- Геометрические фигуры.
- Унаследованные вычисления.
- Контрольные изображения Графические изображения многих управляющих символов.
- Рисунок Коробки.
- Блочные элементы.
- Шаблоны Брайля.
- Оптическое распознавание символов.
- Технический.
- Дингбаты.
- Разные символы.
- Смайлики.
- Символы и пиктограммы.
- Алхимические символы.
- Фигуры игры (шахматы, шашки, го, игральные кости, домино, маджонг, игральные карты и многие другие).
- Шахматные символы
- Тай Сюань Цзин.
- Символы гексаграммы Ицзин.
- CJK. Посвящен идеограммам и другим символам для поддержки языков Китая, Японии, Кореи (CJK), Тайваня, Вьетнама и Таиланда.
- Радикалы и штрихи.
- Идеографы. Безусловно, большая часть UCS посвящена идеограммам, используемым в языках Восточной Азии. Хотя представление глифов этих идеографов в языках, которые их используют, разошлось, ПСК объединяет их. Ханьские персонажи в том, что Unicode именуется Unihan (для Unified Han). С Unihan программное обеспечение для верстки текста должно работать вместе с доступными шрифтами и этими символами Unicode, чтобы создать соответствующий глиф для соответствующего языка. Несмотря на объединение этих персонажей, UCS все еще включает более 92 000 иероглифов Unihan.
- Музыкальная нотация.
- Дуплоян сокращения.
- Знак Саттона.
- Совместимость символов. Несколько блоков в UCS почти полностью посвящены символам совместимости. Символы совместимости - это те, которые включены для поддержки устаревших систем обработки текста, которые не делают различий между символом и глифом, как это делает Unicode. Например, многие арабские буквы представлены другим глифом, когда буква появляется в конце слова, чем когда буква появляется в начале слова. Подход Unicode предпочитает, чтобы эти буквы были сопоставлены с одним и тем же символом для упрощения внутренней машинной обработки и хранения текста. Чтобы дополнить этот подход, текстовое программное обеспечение должно выбирать различные варианты глифов для отображения символа в зависимости от его контекста. Для такой совместимости включено более 4000 символов.
- Управляющие персонажи.
- Суррогаты. UCS включает 2048 кодовых точек в базовой многоязычной плоскости (BMP) для пар суррогатных кодовых точек. Вместе эти суррогаты позволяют адресовать любую кодовую точку в шестнадцати других плоскостях с помощью двух суррогатных кодовых точек. Это обеспечивает простой встроенный метод для кодирования 20,1-битной UCS в 16-битной кодировке, такой как UTF-16. Таким образом, UTF-16 может представлять любой символ в BMP одним 16-битным байтом. Затем символы вне BMP кодируются с использованием двух 16-битных байтов (всего 4 октета) с использованием суррогатных пар.
- Частное использование. Консорциум предоставляет несколько блоков и плоскостей для частного использования, которым могут быть назначены символы в различных сообществах, а также у поставщиков операционных систем и шрифтов.
- Не-персонажи. Консорциум гарантирует, что определенным кодовым точкам никогда не будет присвоен символ, и вызывает эти несимвольные кодовые точки. Такими кодовыми точками являются две последние кодовые точки каждой плоскости (заканчивающиеся на FE и FF). Есть несколько других, разбросанных по Основному Многоязычному Плану, первому плану.
Персонажи специального назначения
Юникод кодирует более ста тысяч символов. Большинство из них представляют собой графемы для обработки в виде линейного текста. Однако некоторые из них либо не представляют собой графемы, либо, как графемы, требуют особой обработки.[3][4] В отличие от управляющих символов ASCII и других символов, включенных для устаревших возможностей двустороннего обмена, эти другие символы специального назначения наделяют простой текст важной семантикой.
Некоторые специальные символы могут изменять макет текста, например соединитель нулевой ширины и не соединяющий элемент нулевой ширины, в то время как другие вообще не влияют на макет текста, а вместо этого влияют на способ сопоставления, сопоставления или иной обработки текстовых строк. Другие специальные символы, такие как математические невидимки, обычно не влияют на рендеринг текста, хотя сложное программное обеспечение для верстки текста может тонко регулировать интервал вокруг них.
Unicode не определяет разделение труда между шрифтом и программным обеспечением (или «движком») верстки текста при рендеринге текста Unicode. Поскольку более сложные форматы шрифтов, такие как OpenType или Продвинутая типографика Apple, обеспечивают контекстную замену и позиционирование глифов, простой механизм компоновки текста может полностью полагаться на шрифт при принятии всех решений по выбору и размещению глифов. В той же ситуации более сложный движок может комбинировать информацию из шрифта со своими собственными правилами для достижения собственного представления о наилучшем рендеринге. Чтобы реализовать все рекомендации спецификации Unicode, текстовый движок должен быть подготовлен к работе со шрифтами любого уровня сложности, поскольку правила контекстной подстановки и позиционирования не существуют в некоторых форматах шрифтов и являются необязательными для остальных. В дробная косая черта является примером: сложные шрифты могут или не могут предоставлять правила позиционирования при наличии символа дробной косой черты для создания дроби, в то время как шрифты в простых форматах не могут.
Отметка порядка байтов
При появлении в начале текстового файла или потока отметка порядка байтов (BOM) U + FEFF намекает на форму кодирования и ее порядок байтов.
Если первый байт потока равен 0xFE, а второй - 0xFF, то текст потока вряд ли будет закодирован в UTF-8, поскольку эти байты недопустимы в UTF-8. Это тоже вряд ли будет UTF-16 в прямой порядок байтов порядок байтов, поскольку 0xFE, 0xFF, прочитанное как 16-битное слово с прямым порядком байтов, будет U + FFFE, что бессмысленно. Последовательность также не имеет значения в любом расположении UTF-32 кодирование, поэтому, в целом, это служит довольно надежным показателем того, что текстовый поток закодирован как UTF-16 в прямой порядок байтов порядок байтов. И наоборот, если первые два байта - это 0xFF, 0xFE, то можно предположить, что текстовый поток закодирован как UTF-16LE, потому что, прочитанные как 16-битное значение с прямым порядком байтов, байты дают ожидаемую метку порядка байтов 0xFEFF. Однако это предположение становится сомнительным, если следующие два байта равны 0x00; либо текст начинается с нулевого символа (U + 0000), либо правильная кодировка на самом деле UTF-32LE, в которой полная 4-байтовая последовательность FF FE 00 00 представляет собой один символ, спецификацию.
Последовательность UTF-8, соответствующая U + FEFF, - это 0xEF, 0xBB, 0xBF. Эта последовательность не имеет значения в других формах кодирования Unicode, поэтому она может служить для обозначения того, что этот поток закодирован как UTF-8.
Спецификация Unicode не требует использования меток порядка байтов в текстовых потоках. Далее говорится, что они не должны использоваться в ситуациях, когда уже используется какой-либо другой метод передачи сигналов о форме кодирования.
Математические невидимки
В первую очередь для математики невидимый разделитель (U + 2063) обеспечивает разделитель между символами, где знаки пунктуации или пробелы могут быть опущены, например, в двумерном индексе, таком как ij. Невидимые времена (U + 2062) и Приложение функции (U + 2061) полезны в математическом тексте, где умножение терминов или применение функции подразумевается без какого-либо глифа, указывающего на операцию. Unicode 5.1 также вводит символ математического невидимого плюса (U + 2064), который может указывать на то, что целое число, за которым следует дробь, должно обозначать их сумму, но не их произведение.
Слэш дроби
Символ дробной косой черты (U + 2044) имеет особое поведение в стандарте Unicode:[5] (раздел 6.2, Другая пунктуация)
Стандартная форма дроби, построенной с использованием дробной косой черты, определяется следующим образом: любая последовательность из одной или нескольких десятичных цифр (общая категория = Nd), за которой следует дробная косая черта, за которой следует любая последовательность из одной или нескольких десятичных цифр. Такая дробь должна отображаться в виде единицы, например ¾. Если программное обеспечение для отображения не способно отобразить дробь на единицу, то ее также можно отобразить как простую линейную последовательность в качестве запасного варианта (например, 3/4). Если дробь должна быть отделена от предыдущего числа, то можно использовать пробел, выбрав соответствующую ширину (нормальную, тонкую, нулевую и т. Д.). Например, 1 + НУЛЕВАЯ ШИРИНА ПРОСТРАНСТВА + 3 + РАЗРЕЗ ДРОБИ + 4 отображается как 1¾.
Следуя этой рекомендации Unicode, системы обработки текста выдают сложные символы только из простого текста. Здесь наличие символа дробной косой черты указывает механизму компоновки синтезировать дробную часть из всех последовательных цифр, предшествующих и следующих за косой чертой. На практике результаты различаются из-за сложного взаимодействия между шрифтами и механизмами компоновки. Механизмы простой верстки текста, как правило, вообще не синтезируют дроби, а вместо этого рисуют глифы в виде линейной последовательности, как описано в резервной схеме Unicode.
Более сложные механизмы компоновки сталкиваются с двумя практическими вариантами: они могут следовать рекомендациям Unicode или они могут полагаться на собственные инструкции шрифта для синтеза дробей. Игнорируя инструкции шрифта, механизм компоновки может гарантировать рекомендованное поведение Unicode. Следуя инструкциям шрифта, механизм компоновки может добиться лучшего типография потому что размещение и форма цифр будут настроены на этот конкретный шрифт с этим конкретным размером.
Проблема со следованием инструкциям шрифта заключается в том, что более простые форматы шрифтов не имеют возможности указать поведение синтеза дробей. Между тем, более сложные форматы не требуют, чтобы шрифт определял поведение фракционного синтеза, и поэтому многие этого не делают. Большинство шрифтов сложных форматов могут дать указание механизму компоновки заменить последовательность простого текста, например «1⁄2», предварительно составленным глифом «½». Но поскольку многие из них не будут выдавать инструкции для синтеза дробей, обычная текстовая строка, такая как «221⁄225», вполне может отображаться как 22½25 (где ½ представляет собой замененную предварительно составленную дробь, а не синтезированную). Перед лицом подобных проблем те, кто хочет полагаться на рекомендуемое поведение Unicode, должны выбирать шрифты, которые, как известно, синтезируют дробные части, или программное обеспечение для верстки текста, которое, как известно, обеспечивает рекомендуемое поведение Unicode независимо от шрифта.
Двунаправленное нейтральное форматирование
Направление письма - это глифы направления, которые размещаются на странице по отношению к продвижению вперед символов в строке Unicode. Английский и другие языки латинского алфавита имеют направление письма слева направо. Несколько основных сценариев написания, таких как арабский и иврит, имеют направление письма справа налево. Спецификация Unicode присваивает направленный тип каждому символу, чтобы сообщить текстовым процессорам, как последовательности символов должны быть упорядочены на странице.
Хотя лексические символы (то есть буквы) обычно характерны для одного письменного сценария, некоторые символы и знаки препинания используются во многих письменных сценариях. Unicode мог создать повторяющиеся символы в репертуаре, которые отличаются только типом направленности, но вместо этого предпочел объединить их и назначить им нейтральный тип направленности. Они получают направление во время рендеринга от соседних символов. Некоторые из этих персонажей также имеют двунаправленный свойство, указывающее, что глиф должен отображаться в зеркальном отображении при использовании в тексте с письмом справа налево.
Тип направления нейтрального персонажа во время рендеринга может оставаться неоднозначным, когда метка помещается на границу между изменениями направления. Чтобы решить эту проблему, Unicode включает символы, которые имеют сильную направленность, не имеют связанных с ними глифов и игнорируются системами, которые не обрабатывают двунаправленный текст:
- Арабский буквенный знак (U + 061C)
- Знак слева направо (U + 200E)
- Отметка справа налево (U + 200F)
Окружение двухстороннего нейтрального символа меткой слева направо заставит персонаж вести себя как символ слева направо, а окружение его меткой справа налево заставит его вести себя как символ справа налево персонаж. Поведение этих символов подробно описано в двунаправленном алгоритме Unicode.
Двунаправленное общее форматирование
Хотя Unicode предназначен для работы с несколькими языками, несколькими системами письма и даже текстом, который перемещается слева направо или справа налево с минимальным вмешательством автора, существуют особые обстоятельства, при которых сочетание двунаправленного текста может стать сложным, требуя большего авторский контроль. Для этих обстоятельств Unicode включает пять других символов для управления сложным встраиванием текста с письмом слева направо в текст с письмом справа налево и наоборот:
- Вложение слева направо (U + 202A)
- Вложение справа налево (U + 202B)
- Направленное форматирование Pop (U + 202C)
- Переопределение слева направо (U + 202D)
- Преобразование справа налево (U + 202E)
- Изолят слева направо (U + 2066)
- Изолят справа налево (U + 2067)
- Первый сильный изолят (U + 2068)
- Направленный изолятор поп-музыки (U + 2069)
Подстрочные символы аннотации
- Якорь межстрочной аннотации (U + FFF9)
- Подстрочный разделитель аннотаций (U + FFFA)
- Подстрочный терминатор аннотации (U + FFFB)
Зависит от скрипта
- Управление форматом с префиксом
- Арабский цифровой знак (U + 0600)
- Арабский знак Сана (U + 0601)
- Маркер для сносок на арабском языке (U + 0602)
- Арабский знак Сафха (U + 0603)
- Арабский знак самват (U + 0604)
- Надпись арабскими цифрами (U + 0605)
- Арабский конец аята (U + 06DD)
- Сирийский аббревиатура (U + 070F)
- Знак числа Кайтхи (U + 110BD)
- Знак числа Кайтхи вверху (U + 110CD)
- Египетские иероглифы
- Вертикальный соединитель египетского иероглифа (U + 13430)
- Горизонтальный соединитель египетского иероглифа (U + 13431)
- Вставка египетского иероглифа в начале (U + 13432)
- Вставка египетского иероглифа в самом низу (U + 13433)
- Вставка египетского иероглифа в верхней части (U + 13434)
- Вставка египетского иероглифа внизу (U + 13435)
- Наложение египетского иероглифа в середине (U + 13436)
- Начало сегмента египетского иероглифа (U + 13437)
- Конечный сегмент египетского иероглифа (U + 13438)
- Брахми
- Объединитель числа Брахми (U + 1107F)
- Построение мертвого персонажа на основе письма брахми (Вирама и подобные диакритические знаки)
- Знак Деванагари Вирама (U + 094D)
- Бенгальский знак Вирама (U + 09CD)
- Знак Гурмукхи Вирама (U + 0A4D)
- Знак Гуджарати Вирама (U + 0ACD)
- Ория Знак Вирама (U + 0B4D)
- Тамильский знак Вирама (U + 0BCD)
- Знак телугу Вирама (U + 0C4D)
- Знак каннада Вирама (U + 0CCD)
- Знак Малаялам Вертикальная черта Вирама (U + 0D3B)
- Круговая Вирама Знака Малаялама (U + 0D3C)
- Знак Малаялам Вирама (U + 0D4D)
- Сингальский знак Аль-Лакуна (U + 0DCA)
- Тайский персонаж Phinthu (U + 0E3A)
- Тайский иероглиф Ямаккан (U + 0E4E)
- Лаосский знак Пали Вирама (U + 0EBA)
- Знак Мьянмы Вирама (U + 1039)
- Тагальский знак Вирама (U + 1714)
- Знак Хануно Памудпод (U + 1734)
- Кхмерский знак Вириам (U + 17D1)
- Кхмерский знак Коенг (U + 17D2)
- Знак Тай Тхам Сакот (U + 1A60)
- Знак Тай Тхам Ра Хаам (U + 1A7A)
- Балийский Адег Адег (U + 1B44)
- Суданский знак Pamaaeh (U + 1BAA)
- Суданский знак Вирама (U + 1BAB)
- Батак Панголат (U + 1BF2)
- Батак Панонгонан (U + 1BF3)
- Силоти Нагри Знак Хасанта (U + A806)
- Силоти Нагри подписывает альтернативу Хасанте (U + A82C)
- Знак Саураштры Вирама (U + A8C4)
- Реджанг Вирама (U + A953)
- Яванский Пангкон (U + A9C0)
- Митей Майек Вирама (U + AAF6)
- Кхарошти Вирама (U + 10A3F)
- Брахми Вирама (U + 11046)
- Знак Кайтхи Вирама (U + 110B9)
- Чакма Вирама (U + 11133)
- Знак Шарада Вирама (U + 111C0)
- Знак Ходжки Вирама (U + 11235)
- Знак Худавади Вирама (U + 112EA)
- Знак Гранта Вирама (U + 1134D)
- Newa Sign Virama (U + 11442)
- Знак Тирхуты Вирама (U + 114C2)
- Знак Сиддхама Вирама (U + 115BF)
- Знак Моди Вирама (U + 1163F)
- Знак Такри Вирама (U + 116B6)
- Убийца Знаков Ахома (U + 1172B)
- Знак Догра Вирама (U + 11839)
- Dives Akuru Sign Halanta (U + 1193D)
- Дайвс Акуру Вирама (U + 1193E)
- Знак Нандинагари Вирама (U + 119E0)
- Знак площади Занабазар Вирама (U + 11A34)
- Квадрат Занабазар (U + 11A47)
- Соёмбо Субджайнер (U + 11A99)
- Знак Бхайкуки Вирама (U + 11C3F)
- Масарам Гонди Знак Халанта (U + 11D44)
- Масарам Гонди Вирама (U + 11D45)
- Гунджала Гонди Вирама (U + 11D97)
- Исторические вирамы с другими функциями
- Тибетец Марк Халанта (U + 0F84)
- Знак Мьянмы Асат (U + 103A)
- Знак Лимбу Sa-I (U + 193B)
- Митей Майек Апун Ийек (U + ABED)
- Чакма Майя (U + 11134)
- Селекторы монгольских вариаций
- Первый выбор монгольского свободного варианта (U + 180B)
- Селектор свободных вариаций монгольского языка 2 (U + 180C)
- Селектор трех монгольских свободных вариаций (U + 180D)
- Монгольский разделитель гласных (U + 180E)
- Универсальные селекторы вариантов
- Селектор вариантов от-1 до -16 (U + FE00 – U + FE0F)
- Селектор вариантов от-17 до -256 (U + E0100 – U + E01EF)
- Знаки тегов (U + E0001 и U + E0020 – U + E007F)
- Тифинаг
- Тифинагский согласный соединитель (U + 2D7F)
- Огам
- Огамовый пробел (U + 1680)
- Идеографический
- Индикатор идеографической вариации (U + 303E)
- Идеографическое описание (U + 2FF0 – U + 2FFB)
- Управление музыкальным форматом
- Музыкальный символ Begin Beam (U + 1D173)
- Музыкальный символ End Beam (U + 1D174)
- Музыкальный символ начала галстука (U + 1D175)
- Музыкальный символ на конце галстука (U + 1D176)
- Музыкальный символ Begin Slur (U + 1D177)
- Музыкальный символ End Slur (U + 1D178)
- Музыкальный символ в начале фразы (U + 1D179)
- Конечная фраза музыкального символа (U + 1D17A)
- Управление сокращенным форматом
- Перекрытие букв сокращенного формата (U + 1BCA0)
- Сокращенный формат продолжающегося перекрытия (U + 1BCA1)
- Шаг вниз для сокращенного формата (U + 1BCA2)
- Шаг увеличения сокращенного формата (U + 1BCA3)
- Устаревшее альтернативное форматирование
- Запретить симметричную замену (U + 206A)
- Активировать симметричный обмен (U + 206B)
- Запретить формирование арабской формы (U + 206C)
- Активировать формирование арабской формы (U + 206D)
- Национальные цифры (U + 206E)
- Номинальные формы цифр (U + 206F)
Другие
- Символ замены объекта (U + FFFC)
- Заменяющий символ (U + FFFD)
Пробелы, объединители и разделители
Unicode предоставляет список символов, которые он считает пробельными символами для поддержки взаимодействия. Программные реализации и другие стандарты могут использовать этот термин для обозначения немного другого набора символов. Например, Java не считает U + 00A0 НЕПРЕРЫВНОЕ ПРОСТРАНСТВО или U + 0085 <control-0085> (СЛЕДУЮЩАЯ СТРОКА) должна быть пробелом, хотя Unicode это делает. Пробельные символы - это символы, которые обычно используются в среде программирования. Часто они не имеют синтаксического значения в таких средах программирования и игнорируются машинными интерпретаторами. Unicode обозначает устаревшие управляющие символы от U + 0009 до U + 000D и U + 0085 как символы пробела, а также все символы, значение свойства General Category которых равно Separator. В Unicode 13.0 всего 25 пробельных символов.
Столярные и не стыкованные графемы
В соединитель нулевой ширины (U + 200D) и не соединяющийся с нулевой шириной (U + 200C) контролируют соединение и лигирование глифов. Соединитель не заставляет символы, которые в противном случае не соединялись бы или не лигировали, делать это, но в паре с не соединяющимся эти символы могут использоваться для управления свойствами соединения и лигирования окружающих двух соединяющихся или лигирующих символов. Объединение объединяющих графем (U + 034F) используется для различения двух базовых символов как одной общей базы или орграфа, в основном для базовой обработки текста, сопоставления строк, сворачивания регистра и т. Д.
Соединители и разделители слов
Самый распространенный разделитель слов - это пробел (U + 0020). Однако есть и другие средства объединения и разделители слов, которые также указывают на разрыв между словами и участвуют в алгоритмах разрыва строки. Пробел без разрыва (U + 00A0) также обеспечивает продвижение базовой линии без глифа, но тормозит, а не разрешает разрыв строки. Пробел нулевой ширины (U + 200B) допускает разрыв строки, но не дает пробела: в некотором смысле объединение, а не разделение двух слов. Наконец, Word Joiner (U + 2060) запрещает разрывы строк, а также не использует пробелы, возникающие при продвижении базовой линии.
Базовый прогресс | Без достижения базовой линии | |
Разрешить разрыв строки (Разделители) | Космос U + 0020 | Пространство нулевой ширины U + 200B |
Запретить разрыв строки (Столяры) | Пробел без перерыва U + 00A0 | Word Joiner U + 2060 |
Прочие разделители
- Разделитель строк (U + 2028)
- Разделитель абзацев (U + 2029)
Они обеспечивают Unicode с собственными разделителями абзацев и строк независимо от устаревших управляющих символов ASCII, таких как возврат каретки (U + 000A), перевод строки (U + 000D) и следующая строка (U + 0085). Unicode не предусматривает других управляющих символов форматирования ASCII, которые, по-видимому, не являются частью модели обработки простого текста Unicode. Эти устаревшие символы управления форматированием включают табуляцию (U + 0009), табуляцию строки или вертикальную табуляцию (U + 000B) и канал формы (U + 000C), которые также рассматриваются как разрыв страницы.
Пространства
Пробел (U + 0020), обычно вводимый с помощью клавиши пробела на клавиатуре, семантически служит разделителем слов во многих языках. По устаревшим причинам UCS также включает пробелы разного размера, которые являются эквивалентами совместимости для символа пробела. Хотя эти промежутки различной ширины важны в типографике, модель обработки Unicode требует, чтобы такие визуальные эффекты обрабатывались с помощью форматированного текста, разметки и других подобных протоколов. Они включены в репертуар Unicode в первую очередь для обработки двустороннего транскодирования без потерь из других кодировок набора символов. Эти пространства включают:
- En Quad (U + 2000)
- Эм Квад (U + 2001)
- En Space (U + 2002)
- Em Space (U + 2003)
- Трехмерное пространство (U + 2004)
- Четыре-на-Em Space (U + 2005)
- Six-Per-Em Space (U + 2006)
- Фигурное пространство (U + 2007)
- Знаки пунктуации (U + 2008)
- Тонкое пространство (U + 2009)
- Космос для волос (U + 200A)
- Среднее математическое пространство (U + 205F)
За исключением исходного пробела ASCII, все остальные пробелы являются символами совместимости. В этом контексте это означает, что они фактически не добавляют семантического содержимого к тексту, а вместо этого предоставляют управление стилем. В Unicode этот несемантический элемент управления стилем часто называют форматированным текстом и выходит за рамки целей Unicode. Вместо того, чтобы использовать разные пробелы в разных контекстах, этот стиль следует обрабатывать с помощью интеллектуального программного обеспечения для верстки текста.
Три других разделителя слов, зависящих от системы письма:
- Монгольский разделитель гласных (U + 180E)
- Идеографическое пространство (U + 3000): действует как идеографический разделитель и обычно отображается как пробел той же ширины, что и идеограмма.
- Огамовый пробел (U + 1680): этот символ иногда отображается с глифом, а иногда только как пробел.
Управляющие символы разрыва строки
Некоторые символы разработаны, чтобы помочь контролировать перенос строки, либо препятствуя их переносу (символы без разрыва), либо предлагая перенос строки, такой как мягкий дефис (U + 00AD) (иногда называемый «застенчивым дефисом»). Такие символы, хотя и предназначены для стилизации, вероятно, незаменимы для сложных типов разрыва строки, которые они делают возможными.
Запрещение перерыва
- Неразрывный дефис (U + 2011)
- Бесперебойный пробел (U + 00A0)
- Тибетский разделитель знаков Tsheg Bstar (U + 0F0C)
- Узкое неразрывное пространство (U + 202F)
Символы, запрещающие разрыв, должны быть эквивалентны последовательности символов, заключенной в Word Joiner U + 2060. Однако слово Joiner может быть добавлено до или после любого символа, который позволяет разрыву строки препятствовать такому разрыву строки.
Включение перерыва
- Мягкий дефис (U + 00AD)
- Тибетский Знак Межсложный Цхег (U + 0F0B)
- Пространство нулевой ширины (U + 200B)
Символы, запрещающие разрыв, и символы, разрешающие разрыв, участвуют вместе с другими знаками пунктуации и пробельными символами, чтобы системы отображения текста могли определять разрывы строк в рамках алгоритма разрыва строки Unicode.[6]
Специальные кодовые точки
Среди миллионов кодовых точек, доступных в UCS, многие зарезервированы для других целей или для обозначения третьими сторонами. Эти отложенные кодовые точки включают несимвольные кодовые точки, суррогаты и кодовые точки для частного использования. Они могут не иметь связанных свойств символов или иметь несколько связанных с ними свойств.
Не-персонажи
66 несимвольных кодовых точек (помечены <not a character>
) откладываются и гарантированно никогда не будут использоваться для персонажа. Каждая из 17 плоскостей имеет две конечные кодовые точки, зарезервированные как несимвольные. Итак, несимволы: U + FFFE и U + FFFF на BMP, U + 1FFFE и U + 1FFFF на Плоскости 1 и так далее, до U + 10FFFE и U + 10FFFF на Плоскости 16, всего 34 кода. точки. Кроме того, в BMP есть непрерывный диапазон из 32 несимвольных кодовых точек: U + FDD0..U + FDEF. Поэтому программные реализации могут свободно использовать эти кодовые точки для внутреннего использования. Одним из особенно полезных примеров несимвола является кодовая точка U + FFFE. Эта кодовая точка имеет обратную последовательность байтов UTF-16 / UCS-2 отметка порядка байтов (U + FEFF). Если поток текста содержит этот несимвол, это хороший признак того, что текст был интерпретирован с неправильным порядок байтов.
Версии стандарта Unicode от 3.1.0 до 6.3.0 утверждали, что несимволы «никогда не должны заменяться местами». Исправление № 9 стандарта позже заявили, что это привело к «неуместному чрезмерному отклонению», пояснив, что «[Несимволы] не являются незаконными при обмене и не вызывают неправильного формата текста Unicode», и удалив исходное утверждение.
Суррогаты
UCS использует суррогаты для адресации символов вне начального Базовая многоязычная плоскость не прибегая к представлению байтов размером более 16 бит. Есть 1024 «высоких» суррогатов (D800 – DBFF) и 1024 «низких» суррогата (DC00 – DFFF). Комбинируя пару суррогатов, можно адресовать оставшиеся символы во всех других плоскостях (1024 × 1024 = 1048576 кодовых точек в других 16 плоскостях). В UTF-16, они всегда должны появляться парами, как старший суррогат, за которым следует младший суррогат, таким образом, используя 32 бита для обозначения одной кодовой точки.
Суррогатная пара обозначает кодовую точку
- 10000₁₆ + (ЧАС - D800₁₆) × 400₁₆ + (L - DC00₁₆)
где ЧАС и L - числовые значения суррогатов высокого и низкого соответственно.
Поскольку высокие суррогатные значения в диапазоне DB80 – DBFF всегда производят значения в плоскостях частного использования, высокий суррогатный диапазон можно далее разделить на (нормальные) высокие суррогаты (D800 – DB7F) и «суррогаты с высоким уровнем частного использования» (DB80 – DBFF) .
Изолированные суррогатные кодовые точки не имеют общей интерпретации; следовательно, для этого диапазона не предоставляются таблицы кодов символов или списки имен. в Язык программирования Python, индивидуальные суррогатные коды используются для встраивания некодируемых байтов в строки Unicode.[7]
Частное использование
UCS включает 137468 кодовых точек для частного использования в трех различных диапазонах, каждый из которых называется Зона частного использования (PUA). Стандарт Unicode распознает кодовые точки в PUA как допустимые коды символов Unicode, но не присваивает им какие-либо (абстрактные) символы. Вместо этого отдельные лица, организации, поставщики программного обеспечения, поставщики операционных систем, поставщики шрифтов и сообщества конечных пользователей могут свободно использовать их по своему усмотрению. В закрытых системах символы в PUA могут работать однозначно, что позволяет таким системам представлять символы или глифы, не определенные в Unicode. В общедоступных системах их использование более проблематично, поскольку отсутствует реестр и нет способа помешать нескольким организациям использовать одни и те же кодовые точки для разных целей. Одним из примеров такого конфликта является яблоко Использование U + F8FF за логотип Apple, по сравнению с Реестр Unicode ConScript Использование U + F8FF как клингонский глиф мумификации в Клингон сценарий.[8]
Базовая многоязычная плоскость включает PUA в диапазоне от U + E000 до U + F8FF (6400 ячеек кода). Самолет пятнадцать и Самолет шестнадцать имеют PUA, состоящие из всех, кроме двух последних позиций кода, которые обозначены как несимволы. PUA в Пятнадцатом самолете - это диапазон от U + F0000 до U + FFFFD (65534 кодовых ячейки). PUA в шестнадцатом плане - это диапазон от U + 100000 до U + 10FFFD (65534 кодовых ячейки).
PUA - это концепция, унаследованная от некоторых азиатских систем кодирования. Эти системы имели частные области использования для кодирования того, что японцы называют гайдзи (редкие символы, которые обычно не встречаются в шрифтах) в зависимости от приложения.
Символы кластеров графем и глифов
В то время как многие другие наборы символов назначают символ для каждого возможного представления символа символа, Unicode стремится обрабатывать символы отдельно от глифов. Это различие не всегда однозначно, однако несколько примеров помогут проиллюстрировать это различие. Часто два символа могут быть объединены вместе типографически, чтобы улучшить читаемость текста. Например, трехбуквенная последовательность «ffi» может рассматриваться как один глиф. Другие наборы символов часто назначают этому глифу кодовую точку в дополнение к отдельным буквам: «f» и «i».
Кроме того, Unicode подходит диакритический измененные буквы как отдельные символы, которые при визуализации становятся одним глифом. Например, "о" с диэрезис: "ö ". Традиционно другим наборам символов присваивается уникальная кодовая точка для каждой измененной диакритической буквы, используемой на каждом языке. Unicode стремится создать более гибкий подход, позволяя комбинировать диакритические символы для комбинирования с любой буквой. Это может значительно уменьшить количество активных кодовых точек, необходимых для набора символов. В качестве примера рассмотрим язык, в котором используется латинский шрифт и сочетаются диэрезис с прописными и строчными буквами «a», «o» и «u». В подходе Unicode к набору символов для использования с латинскими буквами необходимо добавить только диакритический символ диэрезиса: «a», «A», «o», «O», «u» и «U»: семь всего символов. В устаревших наборах символов необходимо добавить шесть заранее составленный буквы с диэрезисом в дополнение к шести кодовым точкам, которые он использует для букв без диэрезиса: всего двенадцать кодовых точек.
Совместимость персонажей
UCS включает тысячи символов, которые Unicode определяет как символы совместимости. Это символы, которые были включены в UCS, чтобы предоставить отдельные кодовые точки для символов, которые различаются другими наборами символов, но не будут дифференцироваться в подходе Unicode к символам.
Основная причина такого различия заключалась в том, что Unicode проводит различие между символами и глифами. Например, при написании английского в курсив стиль, буква «i» может принимать разные формы, появляется ли она в начале слова, в конце слова, в середине слова или отдельно. Такие языки как арабский написанные арабским шрифтом всегда пишутся курсивом. Каждое письмо имеет много разных форм. UCS включает 730 символов арабской формы, которые разлагаются всего на 88 уникальных арабских символов. Однако эти дополнительные арабские символы включены, поэтому программное обеспечение для обработки текста может переводить текст из других наборов символов в UCS и обратно без какой-либо потери информации, важной для программного обеспечения, не поддерживающего Unicode.
Однако, в частности, для UCS и Unicode предпочтительным подходом является всегда кодирование или отображение этой буквы на один и тот же символ, независимо от того, где она появляется в слове. Затем различные формы каждой буквы определяются методами программного обеспечения для шрифта и верстки текста. Таким образом, внутренняя память для символов остается неизменной независимо от того, где символ появляется в слове. Это значительно упрощает поиск, сортировку и другие операции по обработке текста.
Свойства персонажа
Каждый символ в Unicode определяется большим и постоянно растущим набором свойств. Большинство этих свойств не являются частью универсального набора символов. Свойства облегчают обработку текста, включая сопоставление или сортировку текста, идентификацию слов, предложений и графем, визуализацию или отображение текста и т. Д. Ниже приведен список некоторых основных свойств. В базе данных символов Unicode задокументировано много других.[9]
Свойство | пример | Подробности |
имя | ЛАТИНСКАЯ ЗАГЛАВНАЯ БУКВА A | Это постоянное имя, присвоенное совместным сотрудничеством Unicode и ISO UCS. Существует несколько известных плохо выбранных имен, которые подтверждаются, но не будут изменены для обеспечения стабильности спецификации.[10] |
Кодовая точка | U + 0041 | Кодовая точка Unicode - это номер, который также постоянно присваивается вместе со свойством «Name» и включается в сопутствующую UCS. Обычно кодовую точку представляют как шестнадцатеричное число с префиксом «U +» впереди. |
Представитель Глиф | [11] | Репрезентативные глифы представлены в кодовых таблицах.[12] |
Общая категория | Заглавная буква | Общая категория[13] выражается в виде двухбуквенной последовательности, например «Lu» для прописных букв или «Nd» для десятичных цифр. |
Объединение класса | Not_Reordered (0) | Поскольку диакритические знаки и другие объединяющие знаки могут быть выражены несколькими символами в Unicode, свойство «Combining Class» позволяет различать символы по типу объединяющего символа, который он представляет. Комбинирующий класс может быть выражен целым числом от 0 до 255 или именованным значением. Целочисленные значения позволяют переупорядочивать объединяющие метки в каноническом порядке, чтобы сделать возможным сравнение идентичных строк. |
Двунаправленная категория | Слева направо | Указывает тип символа для применения двунаправленного алгоритма Unicode. |
Двунаправленное зеркальное отображение | нет | Указывает, что глиф символа должен быть перевернут или отражен в рамках двунаправленного алгоритма. Зеркальные глифы могут быть предоставлены создателями шрифтов, извлечены из других символов, связанных с помощью свойства «Двунаправленный зеркальный символ», или синтезированы системой визуализации текста. |
Глиф двунаправленного зеркального отображения | Нет данных | Это свойство указывает кодовую точку другого символа, глиф которого может служить зеркальным глифом для текущего символа при зеркальном отображении в двунаправленном алгоритме. |
Десятичное значение | NaN | Для чисел это свойство указывает числовое значение символа. Для десятичных цифр все три значения имеют одно и то же значение, символы совместимости с форматированным текстом и другие недесятичные арабско-индийские цифры обычно имеют только два последних свойства, установленных на числовое значение символа, а числа, не связанные с арабскими индийскими цифрами, например Римские цифры или цифры Ханьчжоу / Сучжоу обычно имеют только "числовое значение". |
Цифра Значение | NaN | |
Числовое значение | NaN | |
Идеографический | Ложь | Указывает, что персонаж Идеограф CJK: а логограф в Хань сценарий.[14] |
По умолчанию игнорируется | Ложь | Указывает, что символ игнорируется для реализаций и что не нужно отображать глиф, глиф крайней меры или заменяющий символ. |
Не рекомендуется | Ложь | Unicode никогда не удаляет символы из репертуара, но иногда Unicode устарел для небольшого количества символов. |
Unicode предоставляет онлайн-базу данных[15] для интерактивного запроса всего репертуара символов Unicode с помощью различных свойств.
Смотрите также
Рекомендации
- ^ «Стандарт Юникода». Консорциум Unicode. Получено 2016-08-09.
- ^ «Дорожные карты для Unicode». Консорциум Unicode. Получено 2016-08-09.
- ^ «Раздел 2.13: Специальные символы» (PDF). Стандарт Юникода. Консорциум Unicode. Март 2020.
- ^ «Раздел 4.12: Персонажи с необычными свойствами» (PDF). Стандарт Юникода. Консорциум Unicode. Март 2020.
- ^ «Раздел 6.2: Общая пунктуация» (PDF). Стандарт Юникода. Консорциум Unicode. Март 2020.
- ^ "UAX # 14: Алгоритм разрыва строки Unicode". Консорциум Unicode. 2016-06-01. Получено 2016-08-09.
- ^ против Лёвиса, Мартина (2009-04-22). «Недекодируемые байты в интерфейсах системных символов». Предложения по усовершенствованию Python. PEP 383. Получено 2016-08-09.
- ^ Майкл Эверсон (2004-01-15). «Клингон: U + F8D0 - U + F8FF».
- ^ «База данных символов Юникода». Консорциум Unicode. Получено 2016-08-09.
- ^ Фрейтаг, Асмус; Макгоуэн, Рик; Уистлер, Кен. «Техническое примечание Unicode № 27 - Известные аномалии в именах символов Unicode». Консорциум Unicode.
- ^ Нет то официальный символ Unicode, но просто а репрезентативный глиф. Чтобы увидеть официальный репрезентативный глиф Unicode, см. диаграммы кода.
- ^ «Таблицы кодов символов». Консорциум Unicode. Получено 2016-08-09.
- ^ "UAX # 44: База данных символов Юникода". Общие значения категории. Консорциум Unicode. 2014-06-05. Получено 2016-08-09.
- ^ Дэвис, Марк; Янку, Лауреньиу; Уистлер, Кен. «Таблица 9. Таблица свойств § PropList.txt». Стандартное приложение Unicode № 44 - База данных символов Unicode. Консорциум Unicode.
- ^ «Утилиты Unicode: указатель свойств символа». Консорциум Unicode. Получено 2015-06-09.
внешняя ссылка
- Консорциум Unicode
- decodeunicode.org Unicode Wiki со всеми 98884 графическими символами Unicode 5.0 в виде гифок, полнотекстовый поиск
- Символы Юникода по свойству