fbpx
Wikipedia

Escape character

In computing and telecommunication, an escape character is a character that invokes an alternative interpretation on the following characters in a character sequence. An escape character is a particular case of metacharacters. Generally, the judgement of whether something is an escape character or not depends on the context.

In the telecommunications field, escape characters are used to indicate that the following characters are encoded differently. This is used to alter control characters that would otherwise be noticed and acted on by the underlying telecommunications hardware. In this context, the use of escape characters is often referred to as quoting.

Definition

An escape character may not have its own meaning, so all escape sequences are of two or more characters.

Escape characters are part of the syntax for many programming languages, data formats, and communication protocols. For a given alphabet an escape character's purpose is to start character sequences (so named escape sequences), which have to be interpreted differently from the same characters occurring without the prefixed escape character.

The functions of escape sequences include:

  • To encode a syntactic entity, such as device commands or special data, which cannot be directly represented by the alphabet.
  • To represent characters, referred to as character quoting, which cannot be typed in the current context, or would have an undesired interpretation. In this case, an escape sequence is a digraph consisting of an escape character itself and a "quoted" character.

Control character

Generally, an escape character is not a particular case of (device) control characters, nor vice versa. If we define control characters as non-graphic, or as having a special meaning for an output device (e.g. printer or text terminal) then any escape character for this device is a control one. But escape characters used in programming (such as the backslash, "\") are graphic, hence are not control characters. Conversely most (but not all) of the ASCII "control characters" have some control function in isolation, therefore they are not escape characters.

In many programming languages, an escape character also forms some escape sequences which are referred to as control characters. For example, line break has an escape sequence of \n.

Examples

JavaScript

JavaScript uses the \ (backslash) as an escape character for:[1][2]

  • \' single quote
  • \" double quote
  • \\ backslash
  • \n new line
  • \r carriage return
  • \t tab
  • \b backspace
  • \f form feed
  • \v vertical tab (Internet Explorer 9 and older treats '\v as 'v instead of a vertical tab ('\x0B). If cross-browser compatibility is a concern, use \x0B instead of \v.)
  • \0 null character (U+0000 NULL) (only if the next character is not a decimal digit; else it is an octal escape sequence)
  • \xFF character represented by the hexadecimal byte "FF"

The \v and \0 escapes are not allowed in JSON strings.

Example code:

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 

ASCII escape character

The ASCII "escape" character (octal: \033, hexadecimal: \x1B, or ^[, or, in decimal, 27) is used in many output devices to start a series of characters called a control sequence or escape sequence. Typically, the escape character was sent first in such a sequence to alert the device that the following characters were to be interpreted as a control sequence rather than as plain characters, then one or more characters would follow to specify some detailed action, after which the device would go back to interpreting characters normally. For example, the sequence of ^[, followed by the printable characters [2;10H, would cause a DEC VT102 terminal to move its cursor to the 10th cell of the 2nd line of the screen. This was later developed to ANSI escape codes covered by the ANSI X3.64 standard. The escape character also starts each command sequence in the Hewlett-Packard Printer Command Language.

An early reference to the term "escape character" is found in Bob Bemer's IBM technical publications, who is credited with inventing this mechanism during his work on the ASCII character set.[3]

The Escape key is usually found on standard PC keyboards. However, it is commonly absent from keyboards for PDAs and other devices not designed primarily for ASCII communications. The DEC VT220 series was one of the few popular keyboards that did not have a dedicated Esc key, instead of using one of the keys above the main keypad. In user interfaces of the 1970s–1980s it was not uncommon to use this key as an escape character, but in modern desktop computers, such use is dropped. Sometimes the key was identified with AltMode (for alternative mode). Even with no dedicated key, the escape character code could be generated by typing [ while simultaneously holding down Ctrl.

Programming and data formats

Many modern programming languages specify the double-quote character (") as a delimiter for a string literal. The backslash (\) escape character typically provides two ways to include double-quotes inside a string literal, either by modifying the meaning of the double-quote character embedded in the string (\" becomes "), or by modifying the meaning of a sequence of characters including the hexadecimal value of a double-quote character (\x22 becomes ").

C, C++, Java, and Ruby all allow exactly the same two backslash escape styles. The PostScript language and Microsoft Rich Text Format also use backslash escapes. The quoted-printable encoding uses the equals sign as an escape character.

URL and URI use %-escapes to quote characters with a special meaning, as for non-ASCII characters. The ampersand (&) character may be considered as an escape character in SGML and derived formats such as HTML and XML.

Some programming languages also provide other ways to represent special characters in literals, without requiring an escape character (see e.g. delimiter collision).

Communication protocols

The Point-to-Point Protocol (PPP) uses the 0x7D octet (\175, or ASCII: }) as an escape character. The octet immediately following should be XORed by 0x20 before being passed to a higher level protocol. This is applied to both 0x7D itself and the control character 0x7E (which is used in PPP to mark the beginning and end of a frame) when those octets need to be transmitted by a higher level protocol encapsulated by PPP, as well as other octets negotiated when the link is established. That is, when a higher level protocol wishes to transmit 0x7D, it is transmitted as the sequence 0x7D 0x5D, and 0x7E is transmitted as 0x7D 0x5E.

Bourne shell

In Bourne shell (sh), the asterisk (*) and question mark (?) characters are wildcard characters expanded via globbing. Without a preceding escape character, an * will expand to the names of all files in the working directory that do not start with a period if and only if there are such files, otherwise * remains unexpanded. So to refer to a file literally called "*", the shell must be told not to interpret it in this way, by preceding it with a backslash (\). This modifies the interpretation of the asterisk (*). Compare:

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

Windows Command Prompt

The Windows command-line interpreter uses a caret character (^) to escape reserved characters that have special meanings (in particular: &, |, (, ), <, >, ^).[4] The DOS command-line interpreter, though it has similar syntax, does not support this.

For example, on the Windows Command Prompt, this will result in a syntax error.

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

whereas this will output the string: <hello world>

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

Windows PowerShell

In Windows, the backslash is used as a path separator; therefore, it generally cannot be used as an escape character. PowerShell uses backtick[5] ( ` ) instead.

For example, the following command:

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

Others

See also

References

  1. ^ "JavaScript character escape sequences · Mathias Bynens". Mathiasbynens.be. Retrieved 2014-06-30.
  2. ^ "Special Characters (JavaScript)". Msdn.microsoft.com. 2014-06-20. Retrieved 2014-06-30.
  3. ^ Bemer, Bob. . www.bobbemer.com. Archived from the original on 4 January 2018. Retrieved 22 March 2018.
  4. ^ Tim Hill (1998). "The Windows NT Command Shell". MacMillan Technical Publishing. Retrieved 2010-01-13.
  5. ^ . Msdn.microsoft.com. 2014-05-08. Archived from the original on 2016-11-25. Retrieved 2016-11-24.

External links

  This article incorporates public domain material from . General Services Administration. Archived from the original on 2022-01-22.

escape, character, escaping, markup, wikipedia, edits, nowiki, confused, with, control, character, escape, sequence, escape, this, article, needs, additional, citations, verification, please, help, improve, this, article, adding, citations, reliable, sources, . For escaping markup in Wikipedia edits see WP NOWIKI Not to be confused with control character escape sequence or Escape key This article needs additional citations for verification Please help improve this article by adding citations to reliable sources Unsourced material may be challenged and removed Find sources Escape character news newspapers books scholar JSTOR April 2010 Learn how and when to remove this template message In computing and telecommunication an escape character is a character that invokes an alternative interpretation on the following characters in a character sequence An escape character is a particular case of metacharacters Generally the judgement of whether something is an escape character or not depends on the context In the telecommunications field escape characters are used to indicate that the following characters are encoded differently This is used to alter control characters that would otherwise be noticed and acted on by the underlying telecommunications hardware In this context the use of escape characters is often referred to as quoting Contents 1 Definition 1 1 Control character 2 Examples 2 1 JavaScript 2 2 ASCII escape character 2 3 Programming and data formats 2 4 Communication protocols 2 5 Bourne shell 2 6 Windows Command Prompt 2 7 Windows PowerShell 2 8 Others 3 See also 4 References 5 External linksDefinition EditAn escape character may not have its own meaning so all escape sequences are of two or more characters Escape characters are part of the syntax for many programming languages data formats and communication protocols For a given alphabet an escape character s purpose is to start character sequences so named escape sequences which have to be interpreted differently from the same characters occurring without the prefixed escape character The functions of escape sequences include To encode a syntactic entity such as device commands or special data which cannot be directly represented by the alphabet To represent characters referred to as character quoting which cannot be typed in the current context or would have an undesired interpretation In this case an escape sequence is a digraph consisting of an escape character itself and a quoted character Control character Edit Generally an escape character is not a particular case of device control characters nor vice versa If we define control characters as non graphic or as having a special meaning for an output device e g printer or text terminal then any escape character for this device is a control one But escape characters used in programming such as the backslash are graphic hence are not control characters Conversely most but not all of the ASCII control characters have some control function in isolation therefore they are not escape characters In many programming languages an escape character also forms some escape sequences which are referred to as control characters For example line break has an escape sequence of n Examples EditJavaScript Edit JavaScript uses the backslash as an escape character for 1 2 single quote double quote backslash n new line r carriage return t tab b backspace f form feed v vertical tab Internet Explorer 9 and older treats v as v instead of a vertical tab x0B If cross browser compatibility is a concern use x0B instead of v 0 null character U 0000 NULL only if the next character is not a decimal digit else it is an octal escape sequence xFF character represented by the hexadecimal byte FF The v and 0 escapes are not allowed in JSON strings Example code 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 ASCII escape character Edit The ASCII escape character octal 033 hexadecimal x1B or or in decimal 27 is used in many output devices to start a series of characters called a control sequence or escape sequence Typically the escape character was sent first in such a sequence to alert the device that the following characters were to be interpreted as a control sequence rather than as plain characters then one or more characters would follow to specify some detailed action after which the device would go back to interpreting characters normally For example the sequence of followed by the printable characters 2 10H would cause a DEC VT102 terminal to move its cursor to the 10th cell of the 2nd line of the screen This was later developed to ANSI escape codes covered by the ANSI X3 64 standard The escape character also starts each command sequence in the Hewlett Packard Printer Command Language An early reference to the term escape character is found in Bob Bemer s IBM technical publications who is credited with inventing this mechanism during his work on the ASCII character set 3 The Escape key is usually found on standard PC keyboards However it is commonly absent from keyboards for PDAs and other devices not designed primarily for ASCII communications The DEC VT220 series was one of the few popular keyboards that did not have a dedicated Esc key instead of using one of the keys above the main keypad In user interfaces of the 1970s 1980s it was not uncommon to use this key as an escape character but in modern desktop computers such use is dropped Sometimes the key was identified with AltMode for alternative mode Even with no dedicated key the escape character code could be generated by typing while simultaneously holding down Ctrl Programming and data formats Edit Many modern programming languages specify the double quote character as a delimiter for a string literal The backslash escape character typically provides two ways to include double quotes inside a string literal either by modifying the meaning of the double quote character embedded in the string becomes or by modifying the meaning of a sequence of characters including the hexadecimal value of a double quote character x22 becomes C C Java and Ruby all allow exactly the same two backslash escape styles The PostScript language and Microsoft Rich Text Format also use backslash escapes The quoted printable encoding uses the equals sign as an escape character URL and URI use escapes to quote characters with a special meaning as for non ASCII characters The ampersand amp character may be considered as an escape character in SGML and derived formats such as HTML and XML Some programming languages also provide other ways to represent special characters in literals without requiring an escape character see e g delimiter collision Communication protocols Edit The Point to Point Protocol PPP uses the 0x7D octet 175 or ASCII as an escape character The octet immediately following should be XORed by 0x20 before being passed to a higher level protocol This is applied to both 0x7D itself and the control character 0x7E which is used in PPP to mark the beginning and end of a frame when those octets need to be transmitted by a higher level protocol encapsulated by PPP as well as other octets negotiated when the link is established That is when a higher level protocol wishes to transmit 0x7D it is transmitted as the sequence 0x7D 0x5D and 0x7E is transmitted as 0x7D 0x5E Bourne shell Edit In Bourne shell sh the asterisk and question mark characters are wildcard characters expanded via globbing Without a preceding escape character an will expand to the names of all files in the working directory that do not start with a period if and only if there are such files otherwise remains unexpanded So to refer to a file literally called the shell must be told not to interpret it in this way by preceding it with a backslash This modifies the interpretation of the asterisk Compare rm delete all files in the current directory rm delete the file named Windows Command Prompt Edit The Windows command line interpreter uses a caret character to escape reserved characters that have special meanings in particular amp lt gt 4 The DOS command line interpreter though it has similar syntax does not support this For example on the Windows Command Prompt this will result in a syntax error C gt echo lt hello world gt The syntax of the command is incorrect whereas this will output the string span class p lt span hello world gt C gt echo lt hello world gt lt hello world gt Windows PowerShell Edit In Windows the backslash is used as a path separator therefore it generally cannot be used as an escape character PowerShell uses backtick 5 instead For example the following command PS C gt echo t First line n New line First line New line Others Edit Quoted printable which encodes 8 bit data into 7 bit data of limited line lengths uses the equals sign as an escape character See also EditAltGr key used to type characters that are unusual for the locale of the keyboard layout Escape sequences in C Leaning toothpick syndrome Nested quotation Stropping syntax in some conventions a leading character such as an apostrophe functions as an escape characterReferences Edit JavaScript character escape sequences Mathias Bynens Mathiasbynens be Retrieved 2014 06 30 Special Characters JavaScript Msdn microsoft com 2014 06 20 Retrieved 2014 06 30 Bemer Bob How Bob Bemer Invented the ESCAPE Sequence and Key www bobbemer com Archived from the original on 4 January 2018 Retrieved 22 March 2018 Tim Hill 1998 The Windows NT Command Shell MacMillan Technical Publishing Retrieved 2010 01 13 about Escape Characters Msdn microsoft com 2014 05 08 Archived from the original on 2016 11 25 Retrieved 2016 11 24 External links EditThat Powerful ESCAPE Character Key and Sequences Archived 2016 03 25 at the Wayback Machine Bob Bemer This article incorporates public domain material from Federal Standard 1037C General Services Administration Archived from the original on 2022 01 22 Retrieved from https en wikipedia org w index php title Escape character amp oldid 1151805749, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.