Управляющие символы Unicode - Unicode control characters

Много Unicode управляющие символы используются для управления интерпретацией или отображением текста, но сами эти символы не имеют визуального или пространственного представления. Например, нулевой символ (U + 0000 <control-0000> управляющие символы ) используется в прикладных средах C-программирования для обозначения конца строки символов. Таким образом, этим программам требуется только один начальный адрес памяти для строки (в отличие от начального адреса и длины), поскольку строка заканчивается, как только программа считывает нулевой символ.

Управляющие символы ISO 6429 (C0 и C1)

В управляющие символы U + 0000 – U + 001F и U + 007F происходят из ASCII. Кроме того, U + 0080 – U + 009F использовались вместе с ISO 8859 наборы символов (среди прочего). Они указаны в ISO 6429 и часто упоминается как Коды управления C0 и C1 соответственно.

Большинство этих символов не играют явной роли в обработке текста Unicode. Персонажи U + 0000 <control-0000> (NUL), U + 0009 <control-0009> клавиша табуляции (HT), U + 000A <control-000A> новая линия (LF), U + 000D <control-000D> (CR), и U + 0085 <control-0085> (NEL) обычно используются при обработке текста как символы форматирования.

Unicode представил разделители

В попытке упростить несколько новая линия символы, используемые в устаревшем тексте[нужна цитата ], Unicode вводит собственные символы новой строки для разделения строк или абзацев: U + 2028 СЕПАРАТОР ЛИНИИ (HTML&#8232;) и U + 2029 РАЗДЕЛИТЕЛЬ ПАРАГРАФОВ (HTML&#8233;). Эти символы предназначены только для форматирования текста, а не контроль символы.

Языковые теги

Unicode ранее включал 128 символов, теперь не рекомендуется для языковых тегов. Эти символы по существу отражали 128 символов ASCII, но использовались для идентификации последующего текста как принадлежащего к определенному языку в соответствии с BCP 47. Например, для обозначения последующего текста как варианта английского языка, написанного в США, начальный «Символ языкового тега» (U + E0001), за которым следует последовательность «Тег, маленькая буква е» (U + E0065), «Тег, маленький. Использовалась бы буква n '(U + E006E), «Тег дефис-минус» (U + E002D), «маленькая буква тега u» (U + E0075) и «маленькая буква тега s» (U + E0073).

Эти символы языковых тегов не будут отображаться сами по себе. Однако они будут предоставлять информацию для обработки текста или даже для отображения других символов. Например, отображение иероглифов Unihan могло бы заменить другие глифы, если бы языковые теги указывали на корейский, чем если бы теги указывали на японский. Другой пример, возможно, по-разному повлиял на отображение десятичных цифр от 0 до 9 в зависимости от языка, на котором они появляются.

Символы тегов U + E0001, U + E0020 – U + E007E и U + E007F устарели в Unicode 5.1 (2008) и не должны использоваться для информации о языке.[1]

С выпуском Unicode 8.0 (2015) символы U + E0020 – U + E007E больше не являются устаревшими. (U + E0001 LANGUAGE TAG и U + E007F CANCEL TAG остаются устаревшими.) Изменение было внесено, «чтобы освободить путь для возможное будущее использование символов тегов не для представления языковых тегов ".[2]Unicode утверждает, что «использование символов тегов для представления языковых тегов в потоке обычного текста по-прежнему является устаревшим механизмом для передачи языковой информации о тексте.[2]

Подстрочная аннотация

Три символа форматирования обеспечивают поддержку подстрочная аннотация (ЯКОРЬ U + FFF9, СЕПАРАТОР U + FFFA, ТЕРМИНАТОР U + FFFB). Это можно использовать для предоставления примечаний, которые обычно отображаются между строками другого текста. Unicode считает такую ​​аннотацию форматированным текстом и рекомендует использовать другие протоколы для такой аннотации. W3C Разметка Ruby Рекомендация - это пример альтернативного протокола, поддерживающего более продвинутую подстрочную аннотацию.

Двунаправленный текстовый контроль

Unicode поддерживает стандартный двунаправленный текст без каких-либо специальных символов. Другими словами, программное обеспечение, поддерживающее Unicode, должно отображать символы с письмом справа налево, такие как буквы иврита, справа налево просто из свойств этих символов. Точно так же Unicode обрабатывает смесь текста с письмом слева направо и текста с письмом справа налево без каких-либо специальных символов. Например, можно процитировать арабский («بسم الله») (переведенный на английский как «Бисмиллах») рядом с английским, и арабские буквы будут идти справа налево, а латинские буквы - слева направо. Однако поддержка двунаправленного текста становится более сложной, если текст, текущий в противоположных направлениях, встроен иерархически, например, если кто-то цитирует арабскую фразу, которая, в свою очередь, цитирует английскую фразу. Другие ситуации также могут усложнить это, например, когда автор хочет переопределить символы, идущие слева направо, чтобы они текли справа налево. Хотя эти ситуации довольно редки, Unicode предоставляет двенадцать символов (U + 061C, U + 200E, U + 200F, U + 202A, U + 202B, U + 202C, U + 202D, U + 202E, U + 2066, U + 2067, U + 2068, U + 2069), чтобы помочь управлять этими встроенными уровнями двунаправленного текста до 125 уровней.[3]

Селекторы вариаций

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

Однако при замене других глифов намерение автора может быть закодировано с текстом и не может быть определено контекстно. Так обстоит дело с символами / глифами, называемыми гайдзи где разные глифы используются для одного и того же символа исторически или для идеограмм фамилий. Это одна из серых областей при различении глифа и символа. Если фамилия немного отличается от символа идеограммы, от которого оно происходит, то это простой вариант глифа или вариант символа. Начиная с Unicode 3.2 и 4.0, набор символов теперь включает 256 селекторов вариантов, так что эти объединяющие символы метки могут выбирать из 256 возможных вариантов символа / глифа для предыдущего символа.

Контрольные картинки

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

Контрольные изображения[1][2]
Таблица кодов официального консорциума Unicode (PDF)
 0123456789АBCDEF
U + 240x
U + 241x
U + 242x
U + 243x
Заметки
1.^ Начиная с версии Unicode 13.0
2.^ Серые области обозначают неназначенные кодовые точки

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

использованная литература

  1. ^ «RFC6082: устаревшие символы тегов языка Unicode: RFC 2482 является историческим». Инженерная группа Интернета (IETF). Ноябрь 2010 г.
  2. ^ а б «Юникод 8.0.0, последствия для миграции». Консорциум Unicode.
  3. ^ "UAX # 9: двунаправленный алгоритм Unicode". Консорциум Unicode. 2018-05-09.