escape-символ

редактировать
Символ, который вызывает альтернативную интерпретацию последующих символов в последовательности символов

В вычислениях и телекоммуникациях, escape-символ - это символ , который вызывает альтернативную интерпретацию следующих символов в последовательности символов. Управляющий символ - это частный случай метасимволов . Как правило, суждение о том, является ли что-то экранирующим или нет, зависит от контекста.

Содержание
  • 1 Определение
    • 1.1 Управляющий символ
  • 2 Примеры
    • 2.1 JavaScript
    • 2.2 Управляющий символ ASCII
    • 2.3 Программирование и форматы данных
    • 2.4 Протоколы связи
    • 2.5 Оболочка Bourne
    • 2.6 Командная строка Windows
    • 2.7 Windows PowerShell
    • 2.8 Другое
  • 3 См. Также
  • 4 Ссылки
  • 5 Внешние ссылки
Определение

escape-символ может не иметь собственного значения, поэтому все escape-последовательности состоят из двух или более символов.

escape-символы являются частью синтаксиса для многих языков программирования, форматов данных и протоколов связи. Для данного алфавита цель escape-символа состоит в том, чтобы начать последовательность символов (так называемые escape-последовательности ), которые должны интерпретироваться иначе, чем те же символы, встречающиеся без префикса escape-символа.

Функции управляющих последовательностей включают в себя:

  • Для кодирования синтаксической сущности, такой как команды устройства или специальные данные, которые не могут быть напрямую представлены алфавитом.
  • Для представления символов, упомянутых как кавычки символов, которые нельзя ввести в текущем контексте или которые будут иметь нежелательную интерпретацию. В этом случае escape-последовательность представляет собой орграф, состоящий из самого escape-символа и символа "в кавычках".

Управляющий символ

Как правило, escape-символ не является частным случаем of (device) управляющие символы, и наоборот. Если мы определяем управляющие символы как не графику или как имеющие особое значение для устройства вывода (например, принтер или текстовый терминал ), то любой escape-символ для это устройство контрольное. Но escape-символы, используемые в программировании (такие как обратная косая черта, «\»), являются графическими, поэтому не являются управляющими символами. И наоборот, большинство (но не все) «управляющих символов» ASCII имеют отдельные управляющие функции, поэтому они не являются escape-символами.

Во многих языках программирования escape-символ также формирует некоторые escape-последовательности, которые называются управляющими символами. Например, разрыв строки имеет escape-последовательность \n.

Примеры

JavaScript

JavaScript использует \(обратная косая черта) в качестве escape-символа. for:

  • \'одинарная кавычка
  • \"двойная кавычка
  • \\обратная косая черта
  • \nновая строка
  • \rвозврат каретки
  • \tвкладка
  • \bbackspace
  • \fform feed
  • \vвертикальная вкладка (Internet Explorer 9 и более ранние версии рассматривают '\ vкак ' vвместо вертикальной табуляции ('\ x0B). Если кроссбраузерная совместимость вызывает беспокойство используйте \ x0Bвместо \v.)
  • \0нулевого символа (U + 0000 NULL) (только если следующий символ не является десятичной цифрой; иначе это восьмеричная escape-последовательность)
  • \ xFFсимвол, представленный шестнадцатеричным байтом "FF"

Обратите внимание, что escape-символы \ vи \ 0не допускаются в строках JSON.

escape-символ ASCII

escape-символ ASCII (восьмеричный : \ 033, шестнадцатеричный : \ x1Bили ^ [, или, в десятичной форме, 27) используется во многих устройствах вывода для запуска серии вызываемых символов. d последовательность управления или escape-последовательность. Обычно escape-символ отправляется первым в такой последовательности, чтобы предупредить устройство о том, что следующие символы должны интерпретироваться как управляющая последовательность, а не как простые символы, затем следуют один или несколько символов, чтобы указать какое-либо подробное действие, после чего устройство вернется к обычной интерпретации символов. Например, последовательность ^ [, за которой следуют печатаемые символы [2; 10H, приведет к тому, что терминал DEC VT102 будет переместите его курсор в 10-ю ячейку 2-й строки экрана. Позже это было развито в escape-коды ANSI, охватываемые стандартом ANSI X3.64. Управляющий символ также запускает каждую последовательность команд в Hewlett Packard Язык команд принтера.

Раннее упоминание термина «escape-символ» можно найти в Бобе Бемере. Технические публикации IBM, которому приписывают изобретение этого механизма во время его работы над набором символов ASCII.

Escape key обычно находится на стандартных клавиатурах ПК. Тем не менее, он обычно отсутствует на клавиатурах КПК и других устройствах, не предназначенных в первую очередь для связи в формате ASCII. Серия DEC VT220 была одной из немногих популярных клавиатур, в которых не было специальной клавиши Esc вместо одной из клавиш над основной клавиатурой. В пользовательских интерфейсах 1970–1980-х годов нередко было использовать эту клавишу в качестве escape-символа, но в современных настольных компьютерах такое использование не используется. Иногда ключ обозначался (для альтернативного режима). Даже без специальной клавиши код escape-символа можно было сгенерировать, набрав [, одновременно удерживая Ctrl .

Программирование и форматы данных

Многие современные языки программирования указывают символ двойных кавычек (") как разделитель для строкового литерала . обратная косая черта (\) escape-символ обычно предоставляет два способа включения двойных кавычек в строковый литерал: либо путем изменения значения символа двойных кавычек, встроенного в строку (\ "становится "), либо путем изменения значения последовательность символов, включая шестнадцатеричное значение символа двойных кавычек (\ x22становится ").

C, C ++, Java и Ruby - все допускают одинаковые два стиля escape-перехода с обратной косой чертой. Язык PostScript и Microsoft Rich Text Format также используют escape-символы обратной косой черты. Кодировка quoted-printable использует знак равно в качестве escape-символа.

URL и URI используют % -escape-символы для заключения в кавычки символов со специальным значением, как для символов, отличных от ASCII. Символ амперсанд () можно рассматривать как escape-символ в SGML и производных форматах, таких как HTML и XML.

. Некоторые языки программирования также предоставляют другие способы представления специальных символов в литералах, без необходимости использования escape-символа (см., например, разделитель коллизии ).

Протоколы связи

Протокол точка-точка (PPP) использует октет 0x7D (\ 175или ASCII: }) как escape-символ. Сразу за октетом следует выполнить XOR с помощью 0x20перед передачей в протокол более высокого уровня. Это применяется как к самому 0x7D, так и к управляющему символу 0x7E(который используется в PPP для обозначения начала и конца кадра), когда эти октеты должны быть переданы вышестоящим протокол уровня, инкапсулированный PPP, а также другие октеты, согласованные при установлении соединения. То есть, когда протокол более высокого уровня желает передать 0x7D, он передается как последовательность 0x7D 0x5D, а 0x7Eпередается как 0x7D 0x5E.

Оболочка Борна

В оболочке Борна (sh) символы звездочки (*) и вопросительный знак (?) являются символами подстановки. раскрывается с помощью подстановки. Без предшествующего escape-символа *будет расширяться до имен всех файлов в рабочем каталоге, которые не начинаются с точки тогда и только тогда, когда там являются такими файлами, иначе *останется нерасширенным. Таким образом, чтобы обратиться к файлу с буквальным названием «*», оболочке необходимо указать, чтобы он не интерпретировал его таким образом, поставив перед ним обратную косую черту (\). Это изменяет интерпретацию звездочки (*). Сравните:

rm * # удалить все файлы в текущем каталоге rm \ * # удалить файл с именем *

Командная строка Windows

Интерпретатор командной строки Windows использует символ вставки (^) для экранирования зарезервированных символов, имеющих особое значение (в частности: , |, (, ), <, >, ^). Интерпретатор командной строки DOS , хотя и поддерживает аналогичный синтаксис, не поддерживает этого.

Например, в командной строке Windows это приведет к синтаксической ошибке.

echo 

, тогда как это будет выводить строку:

echo ^ 

Windows PowerShell

В Windows обратная косая черта используется в качестве разделителя пути; поэтому его обычно нельзя использовать как escape-символ. PowerShell использует вместо него обратную кавычку (`).

Например, следующая команда:

echo "` tFirst line`nNew line "

выведет:

Первая строка Новая строка

Прочие

См. также
Ссылки
  1. ^«Управляющие последовательности символов JavaScript · Матиас Биненс». Mathiasbynens.be. Проверено 30 июня 2014 г.
  2. ^«Специальные символы (JavaScript)». Msdn.microsoft.com. 2014-06-20. Проверено 30 июня 2014.
  3. ^Бемер, Боб. «Как Боб Бемер изобрел последовательность и ключ ESCAPE». www.bobbemer.com. Проверено 22 марта 2018 г.
  4. ^Тим Хилл (1998). «Командная оболочка Windows NT». Техническое издательство MacMillan. Проверено 13 января 2010 г.
  5. ^«about_Escape_Characters». Msdn.microsoft.com. 2014-05-08. Архивировано из оригинала 25 ноября 2016 года. Проверено 24 ноября 2016 г.
Внешние ссылки

Эта статья включает материалы общественного достояния из документа Управления общих служб : «Федеральный стандарт 1037C».

Последняя правка сделана 2021-05-19 14:33:52
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте