Управляющие символы
Из Википедии, свободной энциклопедии
Управля́ющие си́мволы — это символы в кодировке, предназначенные для управления устройствами, организации передачи данных и других целей и, как правило, не имеющие графического представления[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-T T.50[англ.], ISO/IEC 646, ECMA-48, ISO/IEC 6429, JIS X 0211[англ.], ГОСТ 34.301—91, ISO/IEC 10646, RFC 1345, Юникод и ряде других.
Код символа |
Английское название | Русское название по ГОСТ 27465—87[1] |
Сочетание клавиш[b] |
Escape- последовательность |
Назначение |
---|---|---|---|---|---|
0x00 |
NULL (NUL) | ПУСТО (ПУС) | ^@ | \0 | Обозначает отсутствие данных на носителе (изначально таковым была перфолента, где единичный бит кодируется наличием отверстия, а нулевой бит — его отсутствием; участки перфоленты, не содержащие данные, не имеют кодовых отверстий, то есть содержат символы NUL ). Некоторые терминалы отображают его как пробел, но это некорректно. Используется для обозначения конца последовательности (строки) символов в некоторых языках программирования (например, Си). |
0x01 |
START OF HEADING (SOH) | НАЧАЛО ЗАГОЛОВКА (НЗ) | ^A | В настоящее время используется в консоли маршрутизаторов Cisco. | |
0x02 |
START OF TEXT (STX) | НАЧАЛО ТЕКСТА (НТ) | ^B | В настоящее время используется в консоли маршрутизаторов Cisco. | |
0x03 |
END OF TEXT (ETX) | КОНЕЦ ТЕКСТА (КТ) | ^C | При вводе в терминале обычно интерпретируется как сигнал прерывания. | |
0x04 |
END OF TRANSMISSION (EOT) | KOHЕЦ ПЕРЕДАЧИ (КП) | ^D | При вводе в терминале в Unix-подобных ОС интерпретируется как конец вводимых данных. Если текущая программа брала данные с терминала, то она завершается, как только обработает всё, что было до символа EOT . | |
0x05 |
ENQUIRY (ENQ) | КТО ТАМ? (КТМ) | ^E | Использовался в телетайпной связи. В ответ предполагалось получить идентификационную строку удалённого аппарата. | |
0x06 |
ACKNOWLEDGE (ACK) | ПОДТВЕРЖДЕНИЕ (ДА) | ^F | Использовался в телетайпной связи. | |
0x07 |
BELL (BEL) | ЗВОНОК (ЗВ) | ^G | \a | Если этот символ послать на принтер или терминал, то ничего не напечатается, но раздастся звуковой сигнал. |
0x08 |
BACKSPACE (BS) | ВОЗВРАТ НА ШАГ (ВШ) | ^H | \b | Перемещает позицию печати на один символ назад. На принтерах может использоваться для наложения одного символа на другой, например: = BS / → ≠ . При вводе в терминале иногда используется для удаления предшествующего символа. |
0x09 |
HORIZONTAL TABULATION (HT) | ГОРИЗОНТАЛЬНАЯ ТАБУЛЯЦИЯ (ГТ) | ^I | \t | Перемещает позицию печати к следующей позиции горизонтальной табуляции. |
0x0A |
LINE FEED (LF) | ПЕРЕВОД СТРОКИ (ПС) | ^J | \n | Перемещает позицию печати на одну строку вниз (изначально — без возврата каретки). Разделяет строки текстовых файлов в Unix-подобных ОС. |
0x0B |
VERTICAL TABULATION (VT) | ВЕРТИКАЛЬНАЯ ТАБУЛЯЦИЯ (ВТ) | ^K | \v | Перемещает позицию печати к следующей позиции вертикальной табуляции. В терминале этот символ обычно эквивалентен переводу строки (CR ). |
0x0C |
FORM FEED (FF) | ПЕРЕВОД ФОРМАТА (ПФ) | ^L | \f | Пропускает текущую страницу и продолжает печать со следующей (изначально — без возврата каретки). При выводе в терминале этот символ обычно эквивалентен переводу строки (CR ), однако его ввод может осуществлять очистку экрана. |
0x0D |
CARRIAGE RETURN (CR) | ВОЗВРАТ КАРЕТКИ (ВК) | ^M | \r | Перемещает позицию печати в начало строки (изначально — без перевода строки). Разделяет строки текстовых файлов в некоторых ОС, например классической Mac OS (но не в Mac OS X). Во многих других ОС (CP/M, MS-DOS и Microsoft Windows) для разделения строк используется последовательность символов возврата каретки и перевода строки (LF ) — 0x0D 0x0A , файлы с которой можно отправлять непосредственно на принтер. |
0x0E |
SHIFT OUT (SO) | ВЫХОД (ВЫХ) | ^N | В КОИ-7 включает режим национальных символов (набор Н1). На некоторых принтерах включает режим символов двойной ширины. | |
0x0F |
SHIFT IN (SI) | ВХОД (ВХ) | ^O | В КОИ-7 включает латинский режим (набор Н0). На некоторых принтерах включает режим узких символов. | |
0x10 |
DATA LINK ESCAPE (DLE) | АВТОРЕГИСТР ОДИН (АР1) | ^P | Означает, что следующий за ним управляющий символ должен восприниматься как данные (текст), а не как управляющий символ. | |
0x11 |
DEVICE CONTROL ONE (DC1) | СИМВОЛ УСТРОЙСТВА ОДИН (СУ1) | ^Q | В терминале разрешает продолжить вывод данных. | |
0x12 |
DEVICE CONTROL TWO (DC2) | СИМВОЛ УСТРОЙСТВА ДВА (СУ2) | ^R | ||
0x13 |
DEVICE CONTROL THREE (DC3) | СИМВОЛ УСТРОЙСТВА ТРИ (СУ3) | ^S | В терминале временно прерывает (приостанавливает) вывод данных. | |
0x14 |
DEVICE CONTROL FOUR (DC4) | СИМВОЛ УСТРОЙСТВА ЧЕТЫРЕ (СУ4) | ^T | ||
0x15 |
NEGATIVE ACKNOWLEDGE (NAK) | ОТРИЦАНИЕ (НЕТ) | ^U | Использовался в телетайпной связи. | |
0x16 |
SYNCHRONOUS IDLE (SYN) | СИНХРОНИЗАЦИЯ (СИН) | ^V | Некоторые линии связи устроены так, что требуют непрерывной передачи данных. Если передавать нечего, то передают этот символ. | |
0x17 |
END OF TRANSMISSION BLOCK (ETB) | КОНЕЦ БЛОКА (КБ) | ^W | Конец блока передаваемых данных. | |
0x18 |
CANCEL (CAN) | АННУЛИРОВАНИЕ (АН) | ^X | Данные, которые идут перед ним, некорректны. (Обычно речь идёт об одной строке.) | |
0x19 |
END OF MEDIUM (EM) | КОНЕЦ НОСИТЕЛЯ (КН) | ^Y | Использовался, например, если закончилась перфолента, магнитная лента и т. п. | |
0x1A |
SUBSTITUTE (SUB) | ЗАМЕНА СИМВОЛА (ЗМ) | ^Z | Ставится на месте символов, значения которых были потеряны при передаче. В CP/M и MS-DOS использовался для обозначения конца как текстовых файлов, так и вводимых в консоли данных (хотя для этого были предназначены символы ETX и EOT ). | |
0x1B |
ESCAPE (ESC) | АВТОРЕГИСТР ДВА (АР2) | ^[ | \e | Означает, что следующие за ним символы имеют значение, отличное от определённого в стандарте. Обычно начинает управляющие последовательности (см. также ANSI.SYS). |
0x1C |
FILE SEPARATOR (FS) | РАЗДЕЛИТЕЛЬ ФАЙЛОВ (РФ) | ^\ | ||
0x1D |
GROUP SEPARATOR (GS) | РАЗДЕЛИТЕЛЬ ГРУПП (РГ) | ^] | ||
0x1E |
RECORD SEPARATOR (RS) | РАЗДЕЛИТЕЛЬ ЗАПИСЕЙ (РЗ) | ^^ | Видимо, предназначался для разделения записей в базах данных, но практически никогда для этого не используется. | |
0x1F |
UNIT SEPARATOR (US) | РАЗДЕЛИТЕЛЬ ЭЛЕМЕНТОВ (РЭ) | ^_ | Видимо, предназначался для разделения полей в базах данных, но практически никогда для этого не используется. | |
0x7F |
DELETE (DEL) | ЗАБОЙ (ЗБ) | ^? | Одно из предназначений — удаление (забивание) ошибочных символов на перфоленте (поскольку символ DEL , состоящий из семи единичных битов, соответствует пробитию отверстий во всех кодовых дорожках семидорожечной перфоленты), где он трактуется как отсутствие данных (эквивалентен NUL ). В терминале может быть введён либо клавишей ← Backspace, либо клавишей Delete. |
Управляющие символы C1
Суммиров вкратце
Перспектива
Приведённый ниже вариант набора управляющих символов C1 в настоящее время используется в стандартах ECMA-48, ISO/IEC 6429, JIS X 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.
Примечания
Литература
Ссылки
Wikiwand - on
Seamless Wikipedia browsing. On steroids.