Jump to content

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

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

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

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

Пример кода:

console.log("Using \\n \nWill shift the characters after \\n one row down")
console.log("Using \\t \twill shift the characters after \\t one tab length to the right")
console.log("Using \\r \rWill imitate a carriage return, which means shifting to the start of the row") // can be used to clear the screen on some terminals. Windows uses \r\n instead of \n alone

escape-символ ASCII [ править ]

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

Раннее упоминание термина «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-символа. Следующий за ним октет должен быть XOR подвергнут операции 0x20 перед передачей в протокол более высокого уровня. Это применимо к обоим 0x7D сам и управляющий персонаж 0x7E (который используется в PPP для обозначения начала и конца кадра), когда эти октеты должны быть переданы по протоколу более высокого уровня, инкапсулированному PPP, а также другие октеты, согласованные при установке соединения. То есть, когда протокол более высокого уровня желает передать 0x7D, оно передается как последовательность 0x7D 0x5D, и 0x7E передается как 0x7D 0x5E.

Оболочка Борна [ править ]

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

 
rm *    # delete all files in the current directory
rm \*   # delete the file named *

Командная строка Windows [ править ]

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

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

C:\>echo <hello world>
The syntax of the command is incorrect.

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

C:\>echo ^<hello world^>
<hello world>

Windows PowerShell [ править ]

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

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

PS C:\> echo "`tFirst line`nNew line"
        First line
New line

Другие [ править ]

  • Quoted-printable , который кодирует 8-битные данные в 7-битные данные с ограниченной длиной строки, использует знак равенства ( =) в качестве escape-символа.

См. также [ править ]

Ссылки [ править ]

  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 г.

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 1c231d667cb763676c63607e66b6e9d8__1715795100
URL1:https://arc.ask3.ru/arc/aa/1c/d8/1c231d667cb763676c63607e66b6e9d8.html
Заголовок, (Title) документа по адресу, URL1:
Escape character - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)