stringtranslate.com

Побег персонаж

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

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

Определение

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

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

К функциям escape-последовательностей относятся:

Управляющий персонаж

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

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

Примеры

JavaScript

JavaScript использует \(обратную косую черту) в качестве escape-символа для: [1] [2]

Использование символов \vи \0в строках JSON не допускается.

Пример кода:

консоль . log ( "Использование \\n \nсдвинет символы после \\n на одну строку вниз" ) console . log ( "Использование \\t \t сдвинет символы после \\t на одну длину табуляции вправо" ) console . log ( "Использование \\r \rбудет имитировать возврат каретки, что означает переход к началу строки" ) // может использоваться для очистки экрана на некоторых терминалах. Windows использует \r\n вместо одного \n 

escape-символ ASCII

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

C:\> echo  < hello world> Неверный синтаксис команды.

тогда как это выведет строку:<hello world>

C:\> echo  ^< привет, мир ^> <привет, мир>

Windows PowerShell

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

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

PS C:\> echo " `t Первая строка `n Новая строка" Первая строка Новая строка

Другие

Смотрите также

Рекомендации

  1. ^ «Escape-последовательности символов JavaScript» . Матиас Биненс. 21 декабря 2011 года . Проверено 30 июня 2014 г.
  2. ^ «Специальные символы (JavaScript)» . Сеть разработчиков Microsoft. Архивировано из оригинала 14 декабря 2014 года . Проверено 30 июня 2014 г.
  3. Бемер, Боб (25 октября 2003 г.). «Как Боб Бемер изобрел последовательность и ключ ESCAPE». Боб Бемер . Архивировано из оригинала 4 января 2018 года . Проверено 22 марта 2018 г.
  4. ^ Тим Хилл (1998). «Командная оболочка Windows NT». Microsoft Learn . Техническое издательство MacMillan . Проверено 13 января 2010 г.
  5. ^ "about_Escape_Characters". Сеть разработчиков Microsoft. 08.05.2014. Архивировано из оригинала 25 ноября 2016 г. Проверено 24 ноября 2016 г.

Внешние ссылки

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