Управляющие символы C0¶
Управляющие символы C0 — это набор из 32 кодовых позиций (0x00–0x1F) в стандарте ASCII и других системах кодирования, предназначенных для управления устройствами вывода, передачи данных и форматирования текста. Они не отображаются как графические символы, а выполняют служебные функции, такие как перевод строки, возврат каретки, сигнал звонка или сброс устройства. Название «C0» происходит от обозначения первого блока управляющих символов в стандарте ISO/IEC 646, где они занимают диапазон 0–31 (0x00–0x1F). В отличие от управляющих символов C1 (диапазон 0x80–0x9F), C0 являются базовыми и поддерживаются практически всеми системами, работающими с текстом.
¶История
Управляющие символы C0 возникли в середине XX века вместе с развитием телетайпов и первых компьютерных терминалов. В 1963 году Американская ассоциация стандартов (ANSI) опубликовала первую версию ASCII, где были определены 33 управляющих символа (включая DEL в позиции 0x7F). В 1967 году стандарт был пересмотрен, и набор C0 стал включать 32 символа (0x00–0x1F), а DEL был вынесен в отдельную позицию. В 1972 году Международная организация по стандартизации (ISO) приняла стандарт ISO 646, который закрепил этот набор как международный. Впоследствии управляющие символы C0 были включены в Unicode (U+0000–U+001F) и остаются частью современных систем кодирования, хотя их использование в повседневной работе с текстом сократилось.
¶Классификация
Управляющие символы C0 можно разделить на несколько функциональных групп:
- Управление передачей данных: символы, используемые для синхронизации и контроля потоков в последовательных линиях связи (например, XON, XOFF).
- Управление форматированием: символы, влияющие на расположение текста на устройстве вывода (например, перевод строки, возврат каретки).
- Управление устройством: символы для включения/выключения функций периферийных устройств (например, звонок, включение принтера).
- Разделители информации: символы, используемые для структурирования данных (например, разделитель записей, разделитель групп).
¶Полный список управляющих символов C0
Ниже приведена таблица всех 32 символов C0 с их кодами (в шестнадцатеричной и десятичной системах), аббревиатурами и краткими описаниями:
| Код (hex) | Код (dec) | Аббревиатура | Название | Описание |
|---|---|---|---|---|
| 0x00 | 0 | NUL | Null | Пустой символ, используется для заполнения или завершения строк |
| 0x01 | 1 | SOH | Start of Heading | Начало заголовка сообщения |
| 0x02 | 2 | STX | Start of Text | Начало текста |
| 0x03 | 3 | ETX | End of Text | Конец текста |
| 0x04 | 4 | EOT | End of Transmission | Конец передачи |
| 0x05 | 5 | ENQ | Enquiry | Запрос подтверждения связи |
| 0x06 | 6 | ACK | Acknowledge | Подтверждение приёма |
| 0x07 | 7 | BEL | Bell | Звуковой сигнал (звонок) |
| 0x08 | 8 | BS | Backspace | Возврат на одну позицию назад |
| 0x09 | 9 | HT | Horizontal Tab | Горизонтальная табуляция |
| 0x0A | 10 | LF | Line Feed | Перевод строки (перемещение на одну строку вниз) |
| 0x0B | 11 | VT | Vertical Tab | Вертикальная табуляция |
| 0x0C | 12 | FF | Form Feed | Перевод страницы (прогон листа) |
| 0x0D | 13 | CR | Carriage Return | Возврат каретки (в начало строки) |
| 0x0E | 14 | SO | Shift Out | Переключение на альтернативный набор символов |
| 0x0F | 15 | SI | Shift In | Возврат к стандартному набору символов |
| 0x10 | 16 | DLE | Data Link Escape | Управляющий префикс для изменения значения следующих символов |
| 0x11 | 17 | DC1 | Device Control 1 | Управление устройством 1 (включение/возобновление) |
| 0x12 | 18 | DC2 | Device Control 2 | Управление устройством 2 |
| 0x13 | 19 | DC3 | Device Control 3 | Управление устройством 3 (отключение/приостановка) |
| 0x14 | 20 | DC4 | Device Control 4 | Управление устройством 4 |
| 0x15 | 21 | NAK | Negative Acknowledge | Отрицательное подтверждение (ошибка приёма) |
| 0x16 | 22 | SYN | Synchronous Idle | Синхронизация при синхронной передаче |
| 0x17 | 23 | ETB | End of Transmission Block | Конец блока передачи |
| 0x18 | 24 | CAN | Cancel | Отмена предыдущего сообщения |
| 0x19 | 25 | EM | End of Medium | Конец носителя (например, конец ленты) |
| 0x1A | 26 | SUB | Substitute | Замена ошибочного символа |
| 0x1B | 27 | ESC | Escape | Управляющий префикс для расширения команд |
| 0x1C | 28 | FS | File Separator | Разделитель файлов |
| 0x1D | 29 | GS | Group Separator | Разделитель групп |
| 0x1E | 30 | RS | Record Separator | Разделитель записей |
| 0x1F | 31 | US | Unit Separator | Разделитель единиц |
¶Применение
¶Передача данных
В протоколах последовательной связи (например, RS-232, телетайпные сети) управляющие символы C0 используются для управления потоком и синхронизации. Символы DC1 (XON) и DC3 (XOFF) применяются для управления потоком данных (например, в протоколе XON/XOFF). Символы SOH, STX, ETX, EOT, ACK, NAK используются в протоколах с подтверждением (например, в протоколе XMODEM).
¶Форматирование текста
В текстовых редакторах и системах вёрстки символы LF, CR, HT, FF, VT управляют расположением текста. В системах Unix и Linux перевод строки обозначается символом LF (0x0A), в Windows — последовательностью CR+LF (0x0D 0x0A). Символ HT (0x09) используется для табуляции, а FF (0x0C) — для перехода на новую страницу при печати.
¶Управление устройствами
Символы DC1–DC4 (0x11–0x14) могут использоваться для включения/выключения периферийных устройств. Например, в старых телетайпах DC1 мог включать ленточный перфоратор, а DC3 — отключать его. Символ BEL (0x07) вызывает звуковой сигнал на терминале.
¶Протоколы и управляющие последовательности
Символ ESC (0x1B) используется как префикс для управляющих последовательностей ANSI (например, для изменения цвета текста или перемещения курсора в терминалах). Символ SUB (0x1A) в некоторых системах (например, в CP/M) обозначает конец файла.
¶Особенности в современных системах
В современных операционных системах и текстовых редакторах управляющие символы C0 часто обрабатываются неявно. Например, в большинстве текстовых файлов символы LF и CR используются для разделения строк, а символы HT — для табуляции. Другие символы (например, NUL, BEL, ESC) могут быть не видны пользователю, но сохраняются в двоичных данных. В интерпретаторах командной строки (например, bash, cmd) символы C0 могут использоваться для управления выводом (например, символ BEL для звукового сигнала). В системах Unicode управляющие символы C0 имеют коды U+0000–U+001F и не отображаются в графическом интерфейсе.
¶Критика и ограничения
Управляющие символы C0 были разработаны для устройств середины XX века и не всегда оптимальны в современных системах. Например, разделение символов перевода строки (CR+LF в Windows) создаёт проблемы совместимости с Unix-системами, где используется только LF. Некоторые символы (например, SUB, EM) утратили практическое значение и используются редко. В современных протоколах передачи данных (например, TCP/IP) управляющие символы C0 не применяются, так как их функции выполняются заголовками пакетов. Кроме того, в некоторых системах (например, в веб-формах) символы C0 могут быть запрещены для ввода из соображений безопасности (например, для предотвращения инъекций).
¶Интересные факты
- Символ NUL (0x00) часто используется в языках программирования (например, в C) для обозначения конца строки.
- Символ BEL (0x07) изначально вызывал звонок колокольчика на телетайпе; в современных терминалах он воспроизводится как звуковой сигнал через динамик.
- Символ ESC (0x1B) является основой для управляющих последовательностей ANSI, которые используются в эмуляторах терминалов (например, xterm, PuTTY) для управления цветом, положением курсора и другими параметрами.
- В некоторых старых системах (например, в MS-DOS) символ SUB (0x1A) использовался для обозначения конца файла в текстовых файлах.
¶Источники
- ANSI X3.4-1968: American Standard Code for Information Interchange (ASCII).
- ISO/IEC 646:1991: Information technology — ISO 7-bit coded character set for information interchange.
- Unicode Standard, Version 15.0: Chapter 16 — Special Areas and Format Characters.
- RFC 20: ASCII format for Network Interchange (1969).
- Книга: «The ASCII Character Set» by R. W. Bemer (1960-е).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →


