Управляющие коды C0 и C1 или наборы управляющих символов определяют управляющие коды для использования в тексте компьютерными системами, использующими ASCII и производные от ASCII. Коды представляют дополнительную информацию о тексте, такую как положение курсора, инструкция начать новую строку или сообщение о том, что текст был получен.
Коды C0 находятся в диапазоне 00 HEX –1F HEX , а набор C0 по умолчанию изначально был определен в ISO 646 ( ASCII ). Коды C1 находятся в диапазоне 80 HEX –9F HEX , а набор C1 по умолчанию изначально был определен в ECMA-48 (позднее согласованном с ISO 6429). Система указания управляющих и графических символов ISO/IEC 2022 допускает использование других наборов C0 и C1 для специализированных приложений, но они используются редко.
ASCII определяет 32 управляющих символа, а также необходимый дополнительный символ для символа DEL, 7F HEX или 01111111 BIN (необходимый для того, чтобы пробить все отверстия на бумажной ленте и стереть ее).
Такое большое количество кодов было желательно в то время, поскольку многобайтовые элементы управления потребовали бы реализации конечного автомата в терминале, что было очень сложно с использованием современной электроники и механических терминалов.
Только несколько кодов сохранили свое использование: BEL, ESC и символы эффектора формата [1] (FE n ) BS, TAB, LF, VT, FF и CR. Другие не используются или приобрели другие значения, например, NUL является терминатором строки C. Некоторые протоколы передачи данных, такие как ANPA-1312 , Kermit и XMODEM, действительно широко используют SOH, STX, ETX, EOT, ACK, NAK и SYN для целей, приближающих их первоначальные определения; а некоторые форматы файлов используют «разделители информации» (IS n ), такие как формат Unix info [2] и метод строк splitlines в Python . [3]
Названия некоторых кодов были изменены в ISO 6429:1992 (или ECMA-48:1991) для обеспечения нейтральности по отношению к направлению написания. Используемые сокращения не были изменены, поскольку стандарт уже указал, что они останутся неизменными при переводе стандарта на другие языки. В этой таблице показаны как новые, так и старые названия для переименованных элементов управления (старое название соответствует сокращению).
Unicode предоставляет Control Pictures , которые могут заменить управляющие символы C0, чтобы сделать их видимыми на экране. Однако чаще используется нотация с кареткой .
Десятичная дробь | Шестнадцатеричный | Сокращения | Имя | Описание | |||||
---|---|---|---|---|---|---|---|---|---|
^@ | 0 | 00 | НУЛЕВОЙ | ␀ | Нулевой | \0 | Ничего не делает. Код пустой бумажной ленты, а также используется для заполнения, чтобы замедлить передачу. | ||
^А | 1 | 01 | ТК 1 , СЗХ | ␁ | Начало заголовка | Первый символ заголовка сообщения. [5] | |||
^Б | 2 | 02 | TC 2 , СТХ | ␂ | Начало текста | Завершает заголовок и начинает текст сообщения. | |||
^С | 3 | 03 | TC 3 , ETX | ␃ | Конец текста | Завершает текст сообщения, начинает нижний колонтитул (до следующего символа TC). [5] [6] | |||
^D | 4 | 04 | TC 4 , конец света | ␄ | Конец передачи | Завершает передачу одного или нескольких сообщений. [5] [6] Может переводить терминалы в режим ожидания. [6] | |||
^Э | 5 | 05 | TC 5 , ENQ, WRU [а] | ␅ | Расследование | Запустите ответ на принимающей стороне, чтобы проверить, присутствует ли он еще. | |||
^Ф | 6 | 06 | TC 6 , АСК | ␆ | Сознавать | Индикация успешного получения сообщения. | |||
^Г | 7 | 07 | БЕЛ [б] | ␇ | Звонок , сигнал тревоги | \а | Привлечение внимания оператора. | ||
^Ч | 8 | 08 | FE 0 , БС | ␈ | Возврат на одну позицию | \б | Переместиться на одну позицию влево. Следующий символ может наложиться поверх или заменить символ, который там был. | ||
^Я | 9 | 09 | FE 1 , ХТ | ␉ | Табуляция символов, горизонтальная табуляция | \т | Перейти вправо к следующей позиции табуляции . | ||
^J | 10 | 0А | ФЭ 2 , ЛФ | ␊ | Перевод строки | \н | Переместиться вниз на ту же позицию в следующей строке (некоторые устройства также переместились в левый столбец). | ||
^К | 11 | 0Б | ФЭ 3 , ВТ | ␋ | Строчная табуляция, вертикальная табуляция | \v | Перейти вниз к следующей вертикальной позиции табуляции. | ||
^Л | 12 | 0С | ФЭ 4 , ФФ | ␌ | Форма подачи | \ф | Перейдите вниз к началу следующей страницы. | ||
^М | 13 | 0D | FE 5 , ЧР | ␍ | Возврат каретки | \р | Перейдите в нулевой столбец, оставаясь на той же строке. | ||
^Н | 14 | 0Э | СО, ЛС 1 [13] [c] | ␎ | Сдвиг наружу | Переключитесь на альтернативный набор символов. | |||
^О | 15 | 0Ф | СИ, ЛС 0 [13] [c] | ␏ | Сдвиг в | Возврат к обычному набору символов после SO. | |||
^П | 16 | 10 | TC 7 , DC 0 , [d] DLE | ␐ | Выход из канала передачи данных | Заставить ограниченное количество последовательно следующих друг за другом символов интерпретироваться по-разному. [15] [16] | |||
^Q | 17 | 11 | DC 1 , XON | ␑ | Устройство управления одним | Включите (DC 1 и DC 2 ) или выключите (DC 3 и DC 4 ) устройства. Телетайп [7] использовал их для считывателя бумажной ленты и перфоратора бумажной ленты. Первое использование стало фактическим стандартом для управления потоком программного обеспечения . [17] | |||
^Р | 18 | 12 | DC 2 , ЛЕНТА | ␒ | Устройство управления два | ||||
^С | 19 | 13 | DC 3 , XOFF | ␓ | Устройство управления три | ||||
^Т | 20 | 14 | DC 4 , | ␔ | Устройство управления четыре | ||||
^У | 21 | 15 | ТК 8 , НАК | ␕ | Отрицательное подтверждение | Отрицательный ответ отправителю, например, обнаруженная ошибка. | |||
^В | 22 | 16 | ТК 9 , СИН | ␖ | Синхронный холостой ход | Передается в синхронных системах передачи, когда никакой другой символ не передается. | |||
^W | 23 | 17 | TC 10 , ЭТБ | ␗ | Конец блока передачи | Конец передаваемого блока данных, когда данные разделены на такие блоки для целей передачи. | |||
^X | 24 | 18 | МОЖЕТ | ␘ | Отмена | Указывает, что предшествующие данные ошибочны или их следует игнорировать. | |||
^Y | 25 | 19 | ЭМ | ␙ | Конец среды | Указывает на бумажных или магнитных лентах, что достигнут конец используемой части ленты. [4] | |||
^Z | 26 | 1А | СУБ | ␚ | Заменять | Заменяет символ, который был признан недопустимым или ошибочным . Следует игнорировать. | |||
^[ | 27 | 1Б | ЕСК | ␛ | Побег | \е [е] | Изменяет значение ограниченного числа следующих байтов. В настоящее время это почти всегда используется для введения escape-последовательности ANSI . | ||
^\ | 28 | 1С | ИС 4 , ФС | ␜ | Разделитель файлов | Могут использоваться в качестве разделителей для обозначения полей структур данных. US — самый низкий уровень, тогда как RS, GS и FS — это уровни возрастающего уровня, чтобы разделять группы, состоящие из элементов более низкого уровня. SP (пробел) можно считать еще более низким уровнем. | |||
^] | 29 | 1D | ИС 3 , ГС | ␝ | Разделитель групп | ||||
^^ | 30 | 1Э | ИС 2 , РС | ␞ | Разделитель записей | ||||
^_ | 31 | 1 этаж | ИС 1 , США | ␟ | Разделитель единиц | ||||
Хотя следующие два символа технически не входят в диапазон управляющих символов C0, их можно рассматривать как имеющие некоторые характеристики управляющих символов. | |||||||||
32 | 20 | СП | ␠ | Космос | Перейти на одну позицию вправо. | ||||
^? | 127 | 7Ф | ДЕЛ | ␡ | Удалить | Следует игнорировать. Используется для удаления символов на перфоленте путем прокалывания всех отверстий. |
В 1973 году ECMA-35 и ISO 2022 [18] попытались определить метод, чтобы 8-битный «расширенный ASCII» код мог быть преобразован в соответствующий 7-битный код, и наоборот . [19] В 7-битной среде Shift Out ( SO ) изменил бы значение 96 байтов 0x20 через 0x7F [a] [21] (т. е. всех, кроме управляющих кодов C0), чтобы они стали символами, которые 8-битная среда напечатала бы, если бы использовала тот же код с установленным старшим битом. Это означало, что диапазон 0x80 через 0x9F не мог быть напечатан в 7-битной среде, [19] поэтому было решено, что никакой альтернативный набор символов не может их использовать, и что эти коды должны быть дополнительными управляющими кодами, которые стали известны как управляющие коды C1 . Чтобы разрешить 7-битной среде использовать эти новые элементы управления, последовательности до должны были считаться эквивалентными. [19] Более поздние стандарты ISO 8859 отказались от поддержки 7-битных кодов, но сохранили этот диапазон управляющих символов.ESC @
ESC _
Первым набором контрольных кодов C1, зарегистрированным для использования с ISO 2022, был DIN 31626 [22] , специализированный набор для библиографического использования, зарегистрированный в 1979 году. [23]
Более общий набор ISO/IEC 6429 был зарегистрирован в 1983 году, [24] хотя спецификация ECMA-48, на которой он был основан, была впервые опубликована в 1976 году [25] и JIS X 0211 (ранее JIS C 6323). [26] Также используются символические имена, определенные RFC 1345 и ранними проектами ISO 10646, но не в ISO/IEC 6429 ( PAD , HOP и SGC ). [9] [27]
За исключением SS2 и SS3 в тексте EUC-JP и NEL в тексте, транскодированном из EBCDIC , 8-битные формы этих кодов почти никогда не использовались. CSI , DCS и OSC используются для управления текстовыми терминалами и эмуляторами терминалов , но почти всегда с использованием их 7-битных представлений escape-кодов. В настоящее время, если эти коды встречаются, то гораздо более вероятно, что они предназначены для печати символов из этой позиции Windows-1252 или Mac OS Roman .
За исключением NEL, Unicode не предоставляет "контрольную картинку" ни для одного из них. Также для них нет общеизвестной вариации нотации Caret.
ESC+ | Десятичная дробь | Шестигранник | Сокращ. | Имя | Описание [28] |
---|---|---|---|---|---|
@ | 128 | 80 | ПАД [10] | Символ заполнения [b] | Предложено как «заполнение» или «старший байт» для однобайтовых символов, чтобы сделать их двухбайтовыми для более легкого взаимодействия с многобайтовыми символами . Расширенный код Unix (EUC) иногда использует это. [32] |
А | 129 | 81 | ХОП [10] | Предустановка высокого октета [b] | Предлагается установить старший байт последовательности многобайтовых символов таким образом, чтобы каждому из них требовался только один байт, в качестве простой формы сжатия данных. |
Б | 130 | 82 | ДГПЖ | Здесь разрешен перерыв [c] | Следует за графическим символом, где допускается перенос строки. Примерно эквивалентно мягкому дефису или пробелу нулевой ширины, за исключением того, что не определяет, что печатается на месте переноса строки. |
С | 131 | 83 | НБХ | Здесь нет перерыва [c] | Следует за графическим символом, который не должен быть разорван. См. также word joiner . |
Д | 132 | 84 | ИНД | Индекс [д] | Переместитесь на одну строку вниз, не двигаясь по горизонтали, чтобы устранить двусмысленность относительно значения LF. |
Э | 133 | 85 | НЕЛ | Следующая строка | Эквивалентно CR+LF, соответствует управляющему символу EBCDIC . |
Ф | 134 | 86 | ССА | Начало выбранной области | Используется блочно-ориентированными терминалами . В xterm ESC F перемещается в нижний левый угол экрана, поскольку определенное программное обеспечение предполагает такое поведение. [35] |
Г | 135 | 87 | ЕКА | Конец выбранной области | |
ЧАС | 136 | 88 | ХТС |
| Установите табуляцию в текущей позиции. |
я | 137 | 89 | ХТЖ |
| Выровняйте текст по правому краю с момента последней табуляции относительно следующей позиции табуляции. |
Дж. | 138 | 8А | СДС |
| Установите вертикальную позицию табуляции. |
К | 139 | 8Б | ПЛД |
| Для создания нижних и верхних индексов в ISO/IEC 6429. Нижние индексы используют , а верхние — . PLD text PLU PLU text PLD |
Л | 140 | 8С | ПЛУ |
| |
М | 141 | 8D | РИ |
| Поднимитесь на одну строку вверх. |
Н | 142 | 8Е | СС2 | Односменный 2 | Следующий персонаж из наборов G2 или G3 соответственно. |
О | 143 | 8Ф | СС3 | Односменный 3 | |
П | 144 | 90 | ДКС | Строка управления устройством | Далее следует строка печатных символов (от 0x20 до 0x7E) и эффекторов формата (от 0x08 до 0x0D), завершающаяся ST (0x9C). Xterm определил ряд из них. [36] |
В | 145 | 91 | ПУ1 | Частное использование 1 | Зарезервировано для частной функции, согласованной между отправителем и получателем данных. |
Р | 146 | 92 | ПУ2 | Частное использование 2 | |
С | 147 | 93 | СТС | Установить состояние передачи | |
Т | 148 | 94 | КЧ | Отменить символ | Деструктивный возврат на одну позицию, чтобы устранить двусмысленность относительно значения BS . |
У | 149 | 95 | МВт | Ожидание сообщения | |
В | 150 | 96 | СПА | Начало охраняемой территории | Используется блочно-ориентированными терминалами . |
Вт | 151 | 97 | Агентство по охране окружающей среды | Конец охраняемой территории | |
Х | 152 | 98 | СОС | Начало строки [c] | За ним следует управляющая строка, завершающаяся ST (0x9C), которая (в отличие от DCS , OSC , PM или APC ) может содержать любой символ, кроме SOS или ST. |
И | 153 | 99 | SGC, [10] SGCI [37] | Одиночный графический символ-вводчик [b] | Предназначен для того, чтобы разрешить печать произвольного символа Unicode ; за ним будет следовать этот символ, скорее всего, закодированный в UTF-1 . [37] |
З | 154 | 9А | СКИ | Одиночный вводной символ [c] | За ним следует один печатный символ (от 0x20 до 0x7E) или эффектор формата (от 0x08 до 0x0D), и он печатается как ASCII, независимо от того, какие графические или управляющие наборы использовались. |
[ | 155 | 9Б | CSI | Вводчик контрольной последовательности | Используется для введения управляющих последовательностей, которые принимают параметры. Используется для управляющих последовательностей ANSI . |
\ | 156 | 9С | СТ | Терминатор строки | Завершает строку, начатую DCS , SOS , OSC , PM или APC . |
] | 157 | 9D | ОСК | Команда операционной системы | Далее следует строка печатных символов (от 0x20 до 0x7E) и эффекторов формата (от 0x08 до 0x0D), завершающаяся ST (0x9C), предназначенная для использования с целью обеспечения внутриполосной сигнализации протокольной информации, но редко используемая для этой цели. Некоторые эмуляторы терминала , включая xterm , используют последовательности OSC для установки заголовка окна и изменения цветовой палитры. Они также могут поддерживать завершение последовательности OSC с помощью BEL вместо ST. [38] Kermit использовал APC для передачи команд. [39] |
^ | 158 | 9Е | премьер-министр | Сообщение о конфиденциальности | |
_ | 159 | 9Ф | БТР | Команда прикладной программы |
Механизм расширения ISO /IEC 2022 (ECMA-35) позволил escape-последовательностям изменять наборы C0 и C1. Стандартный набор управляющих символов C0, показанный выше, выбран с последовательностью ESC ! @
, а указанный выше набор C1 выбран с последовательностью ESC " C
. [24]
Было определено несколько официальных и неофициальных альтернатив, но эта в значительной степени устарела. Большинство из них были вынуждены сохранить значительную часть совместимости с элементами управления ASCII для обеспечения взаимодействия. Стандарт делает ESC, [40] [41] SP и DEL [a] «фиксированными» кодированными символами, которые доступны в своих позициях ASCII во всех кодировках, соответствующих стандарту. [43] Он также указывает, что если набор C0 включал коды управления передачей (TC n ), они должны быть закодированы в своих позициях ASCII [40] и не могут быть помещены в набор C1, [44] и любые новые элементы управления передачей должны быть в наборе C1. [40]
Unicode резервирует 65 кодовых точек, описанных выше, для совместимости с управляющими кодами C0 и C1, присваивая им общую категорию Cc
(управляющие). Это:
Unicode определяет семантику только для элементов управления форматом C0 HT, LF, VT, FF и CR (обратите внимание, что BS отсутствует); разделителей информации C0 FS, GS, RS, US (и SP); и элемента управления C1 NEL. [55] Остальные коды прозрачны для Unicode, а их значения оставлены для протоколов более высокого уровня, при этом ISO/IEC 6429 предлагается в качестве значения по умолчанию. [55]
Unicode включает в себя множество дополнительных символов-эффекторов формата помимо этих, таких как метки, вставки, изоляты и выталкиватели для явного двунаправленного форматирования, а также объединятель и необъединитель нулевой ширины для управления использованием лигатуры. Однако им присваивается общая категория (формат), а не .Cf
Cc
{{citation}}
: CS1 maint: числовые имена: список авторов ( ссылка ){{citation}}
: CS1 maint: числовые имена: список авторов ( ссылка ){{citation}}
: CS1 maint: числовые имена: список авторов ( ссылка ){{citation}}
: CS1 maint: числовые имена: список авторов ( ссылка ){{citation}}
: CS1 maint: числовые имена: список авторов ( ссылка ){{citation}}
: CS1 maint: числовые имена: список авторов ( ссылка ){{citation}}
: CS1 maint: числовые имена: список авторов ( ссылка ){{cite book}}
: CS1 maint: числовые имена: список авторов ( ссылка ){{cite book}}
: CS1 maint: числовые имена: список авторов ( ссылка ){{cite book}}
: CS1 maint: числовые имена: список авторов ( ссылка ){{citation}}
: CS1 maint: числовые имена: список авторов ( ссылка ){{citation}}
: CS1 maint: числовые имена: список авторов ( ссылка ){{citation}}
: CS1 maint: числовые имена: список авторов ( ссылка ){{cite web}}
: CS1 maint: числовые имена: список авторов ( ссылка ){{citation}}
: CS1 maint: числовые имена: список авторов ( ссылка ){{citation}}
: CS1 maint: числовые имена: список авторов ( ссылка ){{citation}}
: CS1 maint: числовые имена: список авторов ( ссылка )64 управляющих символа […], символ ASCII DELETE (U+007F) […] отображаются в соответствии с соглашениями EBCDIC, как определено в IBM Character Data Representation Architecture, CDRA, с одним исключением — пары управляющих символов перевода строки EBCDIC и новой строки заменяются парами CDRA по умолчанию на управляющие символы перевода строки (U+000A) и следующей строки (U+0085) ISO/IEC 6429