Управля́ющие си́мволы — символы в кодировке, которым не приписано графическое представление, но которые используются для управления устройствами, организации передачи данных и других целей.
Сейчас для этих целей применяются форматы файлов, языки управления устройствами (такие как Postscript) и сетевые протоколы. Поэтому многие управляющие символы сейчас или не используются вообще, или используются не по назначению.
Стандарт POSIX требует обязательного наличия лишь восьми управляющих символов — \0, \a, \b, \t, \n, \v, \f, \r (см. переносимый набор символов).
В 1963 году была принята первая версия таблицы ASCII, в которой было определено 29 управляющих символов, большинство из которых находилось в диапазоне 00-1F, за исключением символов ACK,ESC и DEL. В редакции от 1967 года символы ACK и ESC были перенесены в основной диапазон, а их место заняли строчные буквы.
Управляющие символы ASCII предназначались для управления работой телетайпов и видеотерминалов и вводились на них сочетаниями с клавишей Ctrl, которая обнуляла в коде введённой клавиши бит 6. В современных компьютерных системах нигде, кроме эмуляторов терминала, не предусмотрен ввод этих символов напрямую (кроме символов табуляции и перевода строки) и большинство из перечисленных управляющих символов не используется.
Этот символ ничего не делает. Некоторые терминалы изображают его как пробел, но это неправильно. Часто NULL используют для обозначения конца цепочки символов (например, в языке C).
При вводе на терминале в UNIX-системах интерпретируется как конец вводимых данных. Если текущая программа брала данные с терминала, то она завершается, как только обработает всё, что было до символа ^D.
Перемещает позицию печати на один символ назад. На принтерах может использоваться для наложения одного символа на другой, например a BS ^ = â. При вводе с терминала иногда используется для стирания предшествующего символа («забой»).
Выбрасывает текущую страницу и начинает печать со следующей. При выводе на терминал этот символ обычно эквивалентен переводу строки, однако нажатие ^L на клавиатуре может осуществлять очистку экрана.
Перемещает позицию печати в крайнее левое положение (исходно — без перевода на следующую строку). Разделяет строки текстовых файлов в некоторых ОС (например Mac OS, но не в Mac OS X). Во многих других ОС (CP/M, MS-DOS и Microsoft Windows), для разделения строк используется сочетание кодов возврата каретки (CARRIAGE RETURN) и перевода строки (LINE FEED) — 0D16 + 0A16, то есть в том виде, в котором файл можно отправить непосредственно на принтер.
Ставится на месте символов, значения которых были потеряны при передаче. В CP/M и MS-DOS использовался для обозначения конца текстовых файлов и конца вводимых с консоли данных (хотя для этого были предназначены символы ^C и ^D).
Означает, что следующие за ним символы имеют какое-то другое значение, отличное от того, которое определено в ASCII. Обычно начинает управляющие последовательности. См. также ANSI.SYS.
Предназначен для забивания ошибочно пробитых символов на семидорожечных перфолентах (поскольку обозначается пробитием дырочек во всех дорожках), поэтому там он эквивалентен пустому символу (\0). На терминалах может генерироваться нажатием либо кнопки Backspace, либо кнопки Delete.
Управляющие символы ISO 8859
80, PADDING CHARACTER, символ-заполнитель.
81, HIGH OCTET PRESET, высокое октетное представление.
82, BREAK PERMITTED HERE, здесь разрешён разрыв строки.
83, NO BREAK HERE, здесь не разрешён разрыв строки.
84, INDEX, индекс.
85, NEXT LINE, следующая строка. Одновременно переводит строку и возвращает позицию печати к началу строки (эквивалентно \r\n).
86, START OF SELECTED AREA, начало выделенной области.
87, END OF SELECTED AREA, конец выделенной области.
88, CHARACTER TABULATION SET, установка позиций горизонтальной табуляции.
89, CHARACTER TABULATION WITH JUSTIFICATION, установка позиций и выравнивания горизонтальной табуляции.
8A, LINE TABULATION SET, установка позиций вертикальной табуляции.
8B, PARTIAL LINE FORWARD, частичный перевод строки вперёд.
8С, PARTIAL LINE BACKWARD, частичный перевод строки назад.
8D, REVERSE LINE FEED, обратный перевод строки.
8E, SINGLE SHIFT TWO, 2-e значение для следующего символа.
8F, SINGLE SHIFT THREE, 3-e значение для следующего символа.
90, DEVICE CONTROL STRING, строка управления устройством.
91, PRIVATE USE ONE, пользовательский символ № 1.
92, PRIVATE USE TWO, пользовательский символ № 2.
93, SET TRANSMIT STATE, установка режима передачи.
94, CANCEL CHARACTER, символ отмены.
95, MESSAGE WAITING, есть сообщение.
96, START OF GUARDED AREA, начало защищённой области.
97, END OF GUARDED AREA, конец защищённой области.
98, START OF STRING, начало строки.
99, SINGLE GRAPHIC CHARACTER INTRODUCER, следующий символ интерпретируется как специальный графический.
9A, SINGLE CHARACTER INTRODUCER, следующий символ интерпретируется как управляющий.
9B, CONTROL SEQUENCE INTRODUCER, начало управляющей последовательности. Обычно этот символ эквивалентен Escape+[.
9C, STRING TERMINATOR, окончание строки.
9D, OPERATING SYSTEM COMMAND, команда операционной системы.
9E, PRIVACY MESSAGE, секретное сообщение.
9F, APPLICATION PROGRAM COMMAND, команда прикладной программы.
Управляющие символы Unicode
034F, COMBINING GRAPHEME JOINER. Объединить символы, стоящие слева и справа (создать лигатуру).
061C, ARABIC LETTER MARK, маркер направления текста для арабского языка.
2008, PUNCTUATION SPACE, пробел шириной в пунктуацию.
200B, ZERO-WIDTH SPACE, пробел нулевой ширины. При выравнивании по ширине может расширяться.
200C, ZERO WIDTH NON-JOINER. Запрещает образование лигатур.
200D, ZERO WIDTH JOINER. Разрешает образование лигатур.
200E, LEFT-TO-RIGHT MARK. Писать слева направо.
200F, RIGHT-TO-LEFT MARK. Писать справа налево.
2028, LINE SEPARATOR, разделитель строк. Разделяет строки текста, но не абзацы.
FEFF, ZERO WIDTH NO-BREAK SPACE / BYTE ORDER MARK, неразрывный пробел нулевой ширины / индикатор порядка байтов. Этот символ используется для указания того, что данный файл записан в UTF-16 или UTF-32 с определённым порядком байтов (поскольку символа FFFE нет, а в UTF-8 байты FE и FF не используются). Использование этого символа в качестве неразрывного пробела нулевой ширины, несмотря на первоначальное название «ZERO WIDTH NO-BREAK SPACE», не рекомендуется; для этого есть символ U+2060 (word joiner).
FFFC, OBJECT REPLACEMENT CHARACTER, объектно-заменяющий символ — указывает, что в этом месте текста должен быть вставлен какой-то объект (например, изображение или виджет).
FFFD, REPLACEMENT CHARACTER, заменяющий символ. Используется, когда значение символа неизвестно или не может быть выражено в Юникоде (см. также символ 1A).