Управля́ющие си́мволы — это символы в кодировке, предназначенные для управления устройствами, организации передачи данных и других целей и, как правило, не имеющие графического представления[a]. Управляющие символы противопоставляются печатным (графическим) символам, предназначенным для написания, печати или иного отображения в форме, которая может быть прочитана человеком.
В настоящее время многие управляющие символы или не используются вообще, или используются не по назначению, поскольку теперь для осуществления упомянутых функций управления применяются форматы файлов, языки управления устройствами (такие как Postscript) и сетевые протоколы.
Стандарт POSIX требует обязательного наличия лишь восьми управляющих символов — \0, \a, \b, \t, \n, \v, \f и \r (см. переносимый набор символов).
Управляющие символы C0
В 1963 году была принята первая редакция стандарта ASCII, в которой было определено 35 управляющих символов. Большинство из них располагалось в диапазоне 0x00—0x1F, за исключением символов ACK, ESC и DEL, которые располагались в диапазоне 0x7C—0x7F. В редакции 1967 года символы ACK и ESC были перенесены в основной диапазон, а их место заняли, соответственно, вертикальная черта (|) и тильда (~).
Управляющие символы ASCII предназначались для управления работой телетайпов и видеотерминалов и вводились на них сочетаниями с клавишей Ctrl, при использовании которой обнулялся старший (6-й, считая с 0) бит кода введённого символа. В современных компьютерных системах нигде, кроме эмуляторов терминала, не предусмотрен ввод этих символов напрямую (кроме символов табуляции и перевода строки), и большинство из перечисленных управляющих символов не используется.
Приведённый ниже вариант набора управляющих символов C0 в настоящее время используется в стандартах ANSI X3.4 (ASCII), ECMA-6, ITU-TT.50[англ.], ISO/IEC 646, ECMA-48, ISO/IEC 6429, JISX 0211[англ.], ГОСТ 34.301—91, ISO/IEC 10646, RFC 1345, Юникод и ряде других.
Управляющие символы C1
Приведённый ниже вариант набора управляющих символов C1 в настоящее время используется в стандартах ECMA-48, ISO/IEC 6429, JISX 0211[англ.] и ГОСТ 34.301—91 (не полностью), ISO/IEC 10646, RFC 1345, Юникод и ряде других.
0x80, PADDING CHARACTER (PAD), символ-заполнитель.0x81, HIGH OCTET PRESET (HOP), предустановка старшего октета.0x82, BREAK PERMITTED HERE (BPH), здесь разрешён разрыв строки.0x83, NO BREAK HERE (NBH), здесь не разрешён разрыв строки.0x84, INDEX (IND), перевод строки (без изменения позиции печати в строке).0x85, NEXT LINE (NEL), следующая строка. Одновременно переводит строку и перемещает позицию печати в начало строки (эквивалентенCR+LF).0x86, START OF SELECTED AREA (SSA), начало выделенной области.0x87, END OF SELECTED AREA (ESA), конец выделенной области.0x88, HORIZONTAL TABULATION SET (HTS), установка позиций горизонтальной табуляции.0x89, HORIZONTAL TABULATION WITH JUSTIFICATION (HTJ), установка позиций и выравнивания горизонтальной табуляции.0x8A, VERTICAL TABULATION SET (VTS), установка позиций вертикальной табуляции.0x8B, PARTIAL LINE DOWN (PLD), частичный перевод строки вниз (вперёд).0x8C, PARTIAL LINE UP (PLU), частичный перевод строки вверх (назад).0x8D, REVERSE INDEX (RI), обратный перевод строки (без изменения позиции печати в строке).0x8E, SINGLE SHIFT TWO (SS2), 2-e значение для следующего символа.0x8F, SINGLE SHIFT THREE (SS3), 3-e значение для следующего символа.0x90, DEVICE CONTROL STRING (DCS), строка управления устройством.0x91, PRIVATE USE ONE (PU1), пользовательский символ № 1.0x92, PRIVATE USE TWO (PU2), пользовательский символ № 2.0x93, SET TRANSMIT STATE (STS), установка режима передачи.0x94, CANCEL CHARACTER (CCH), символ отмены.0x95, MESSAGE WAITING (MW), есть сообщение.0x96, START OF GUARDED PROTECTED AREA (SPA), начало защищённой области.0x97, END OF GUARDED PROTECTED AREA (EPA), конец защищённой области.0x98, START OF STRING (SOS), начало строки.0x99, SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI), следующий символ интерпретируется как специальный графический.0x9A, SINGLE CHARACTER INTRODUCER (SCI), следующий символ интерпретируется как управляющий.0x9B, CONTROL SEQUENCE INTRODUCER (CSI), начало управляющей последовательности. Обычно эквивалентенESC+[.0x9C, STRING TERMINATOR (ST), окончание строки.0x9D, OPERATING SYSTEM COMMAND (OSC), команда операционной системы.0x9E, PRIVACY MESSAGE (PM), конфиденциальное сообщение.0x9F, APPLICATION PROGRAM COMMAND (APC), команда прикладной программы.
Управляющие символы Юникода
U+034F, COMBINING GRAPHEME JOINER. Объединить символы, стоящие слева и справа (создать лигатуру).U+061C, ARABIC LETTER MARK, маркер направления текста для арабского языка.U+2008, PUNCTUATION SPACE, пробел шириной в знак пунктуации.U+200B, ZERO-WIDTH SPACE, пробел нулевой ширины. При выравнивании по ширине может расширяться.U+200C, ZERO WIDTH NON-JOINER. Запрещает образование лигатур.U+200D, ZERO WIDTH JOINER. Разрешает образование лигатур.U+200E, LEFT-TO-RIGHT MARK. Писать слева направо.U+200F, RIGHT-TO-LEFT MARK. Писать справа налево.U+2028, LINE SEPARATOR, разделитель строк. Разделяет строки текста, но не абзацы.U+2029, PARAGRAPH SEPARATOR, разделитель абзацев. Разделяет абзацы текста.U+202A, LEFT-TO-RIGHT EMBEDDING. Начало текста, написанного слева направо, внутри текста, написанного справа налево.U+202B, RIGHT-TO-LEFT EMBEDDING. Начало текста, написанного справа налево, внутри текста, написанного слева направо.U+202C, POP DIRECTIONAL FORMATTING. Конец вставленного текста с другим направлением.U+202D, LEFT-TO-RIGHT OVERRIDE. Заменить текст, написанный слева направо, текстом, написанным справа налево.U+202E, RIGHT-TO-LEFT OVERRIDE. Заменить текст, написанный справа налево, текстом, написанным слева направо.U+2060, WORD JOINER, соединитель слов.U+2066, LEFT-TO-RIGHT ISOLATE, начало отрезка текста, написанного слева направо.U+2067, RIGHT-TO-LEFT ISOLATE, начало отрезка текста, написанного справа налево.U+2068, FIRST STRONG ISOLATE, первый усиленный разделитель.U+2069, POP DIRECTIONAL ISOLATE, возврат к старому направлению текста.U+206A, INHIBIT SYMMETRIC SWAPPING, запретить симметричный обмен[c].U+206B, ACTIVATE SYMMETRIC SWAPPING, активировать симметричный обмен[c].U+206C, INHIBIT ARABIC FORM SHAPING, запретить арабскую форму формирования[c].U+206D, ACTIVATE ARABIC FORM SHAPING, активировать арабскую форму формирования[c].U+206E, NATIONAL DIGIT SHAPES, национальная форма цифры[c].U+206F, NOMINAL DIGIT SHAPES, номинальная форма цифры[c].U+FE00…U+FE0F, VARIATION SELECTOR-1…16, выбор варианта начертания № 1 … № 16.U+FEFF, ZERO WIDTH NO-BREAK SPACE / BYTE ORDER MARK, неразрывный пробел нулевой ширины / метка порядка байтов. Этот символ используется для указания того, что данный файл записан в UTF-16 или UTF-32 с определённым порядком байтов (поскольку символаU+FFFEнет, а в UTF-8 байты0xFEи0xFFне используются). Использование этого символа в качестве неразрывного пробела нулевой ширины, несмотря на первоначальное название (ZERO WIDTH NO-BREAK SPACE), не рекомендуется; для этого есть символU+2060(WORD JOINER).U+FFF9, INTERLINEAR ANNOTATION ANCHOR, якорь межстрочной аннотации.U+FFFA, INTERLINEAR ANNOTATION SEPARATOR, разделитель межстрочной аннотации.U+FFFB, INTERLINEAR ANNOTATION TERMINATOR, окончание межстрочной аннотации.U+FFFC, OBJECT REPLACEMENT CHARACTER, объектно-заменяющий символ. Указывает, что в этом месте текста должен находиться какой-то объект (например, изображение или виджет).U+FFFD, REPLACEMENT CHARACTER, заменяющий символ. Используется, когда значение символа неизвестно или не может быть выражено в Юникоде (см. также символSUB).U+E0100…U+E01EF, VARIATION SELECTOR-17…256, выбор варианта начертания № 17 … № 256.
Примечания
Комментарии
- ↑Исключениями из данного правила являются, к примеру, управляющие символы WRU (who are you с англ. — «кто там») и BELL (с англ. — «звонок») телетайпного кода ITA2, которые, напротив, имеют графическое представление и могут печататься на телеграфной ленте. Также к управляющим символам в ITA2 и ряде других кодировок относят пробел.
- ↑Для первых 32 управляющих символов это комбинация Ctrl и клавиши, соответствующей символу с кодом на 64 больше, чем код требуемого управляющего символа.
- ↑ 123456Символ не рекомендуется к использованию.
Источники
- ↑ГОСТ 27465—87 (СТ СЭВ 359—86) «Системы обработки информации. Символы. Классификация, наименование и обозначение»
Литература
- ГОСТ 34.301—91 (ИСО 6429—88) «Информационная технология. 7-битные и 8-битные кодированные наборы символов. Управляющие функции».
Ссылки
- ISO IR 1: The set of control characters of the ISO 646 (англ.). Дата обращения: 16 февраля 2025. Архивировано 11 февраля 2025 года.
- ISO IR 77: C1 Control Character Set of ISO 6429-1983 (англ.). Дата обращения: 16 февраля 2025. Архивировано 14 февраля 2025 года.