Escape-последовательности имеют много общего с концепцией внеполосной связи:
Также иногда используется для описания того, что люди называют символами сдвига, например, ESC, который приводит последовательности управления для многих терминалов, или индикаторы сдвига уровня в старых 5-битных кодах Бодо.
Допустим, вы выполняете передачу файла через последовательный порт и договариваетесь с компьютером на другом конце: «Хорошо, вот идет файл». Поскольку в общем случае все символы могут быть допустимыми символами файла (если это файл ASCII), у вас есть некоторые проблемы:
- Как вы знаете, где конец потока?
- Некоторые схемы используют ASCII NUL (ноль) для завершения, как строки в некоторых языках, но тогда вы не можете иметь этот символ в файле. Это недопустимо в некоторых настройках, таких как передача файлов. Ноль может быть действительным персонажем.
- Вы могли бы сначала отправить ожидаемую длину файла, но что, если вам нужно прервать?
Разные люди на протяжении всей истории вычислительной техники реализовывали множество различных методов, чтобы обойти эту проблему.
В случае буквенных строк в языке программирования это аналогичная проблема. Первая цитата гласит: «Вот строка, начинайте читать, пока не получите другую цитату». Конечно, тогда у вас есть проблема с отправкой символа кавычки, поэтому они придумали escape-последовательность. Если вы видите косую черту, а затем кавычку, то это буквальная кавычка, а не конец строки. К сожалению, вы только что проглотили паука, чтобы съесть муху, потому что теперь вы не можете отправить буквальную комбинацию слеш-кавычка. Таким образом, вы можете избежать косой черты с другой косой чертой. Таким образом, косая черта означает косую черту, косая черта означает цитату. Это позволило им использовать косую черту для других непечатаемых или трудно печатаемых символов, таких как возврат каретки, перевод строки, вкладки и т. Д.