Control characters are characters that don’t represent printable character yet rather serves to start particular action. Control characters are utilized to execute any action, in contrast, to print printable character on display. They are also utilized as in-band signaling to cause impacts other than expansion of symbol to content.
On the other hand, Printable characters are utilized to show character on screen like Letters, symbols, numbers, and alphanumeric characters. There are different sorts of control characters, including printing control characters, data structuring control characters, and transmission control characters. A large number of such characters are frequently utilized in prefix or suffix sections of barcode and RFID scanners.
Attention reader! Don’t stop learning now. Get hold of all the important CS Theory concepts for SDE interviews with the CS Theory Course at a student-friendly price and become industry ready.
A type of control characters were presented in 1870 Baudot code: NUL and DEL. 1901 Murray code included carriage return (CR) and line feed (LF), and different variants of Baudot code included other control characters. The bell character (BEL), which rang bell to signal executives, was likewise early teletype control character.
Control characters are separated into three parts 0:
- ASCII control characters –
ASCII control character comprises code 0–31 (hex 00–1F). This range is likewise called C0 set. There are two extra controls at 32 and 127 (hex 20 and 7F). ASCII table numbers 0–31 are designated for control characters used to command some peripheral devices, for example, printers. For instance, 12 denotes form feed/new page function. This command instructs printer to go to head of following page.
This collection of control characters covers numerous applications. There are “Format Effectors” that regulate presentation of plain content. There are “Transmission Controls” for transmission protocols and “Device Controls” to begin, run and stop auxiliary devices.
There are “Information Separators” that control different bits of information. Additional controls exist for creating cautions, showing end of file/text/code/script, and for handling errors.
ASCII control characters include wide variety of purposes, such as text layout, communication, and device control, and that’s only tip of iceberg.
- C1 control characters –
C1 covers 128-159 (hex 80-9F). C1 is essentially for displays and printers. This set is identified with ANSI escape sequences and VT100.
C1 set was introduced in late 1970s. It is fundamentally intended for controlling monitors and printer gadgets, despite fact that portion of controls delegates different uses also. C1 set is meant for use with C0 set.
C1 set incorporates “Format effectors” that control horizontal and vertical shift when printing. There are “Presentation controls” for characterizing line breaks or new line. There are “Area definition” controls for structure and form filling.
- ISO 8859 unique characters –
ISO 8859 is collection of 8-bit character sets. The sets include different Latin, Cyrillic, Greek, Arabic, Hebrew, and Thai characters. ISO 8859 is identified with Windows character sets (“ANSI codepages”), yet these are really unique in relation to one another.
ISO 8859 has two important characters: Non-Breaking, (NBSP) and Soft Hyphen (SHY). Two of them have control character like attributes, despite fact that they are not really termed control characters in ISO 8859.
Here are some of basic Control Codes :
|Caret Notation||Hex Code||Abbreviation||Name||Description|
|^@||00||NULL||Null||Used to perform media-fill and allow gaps. Also used for padding after any code and to mark end of string, notably in programming language C/C++.|
|^A||01||STX||Start of Header||Used as first character of head of data broadcast/message. It is usually used as field separator in Apache Hadoop.|
|^B||02||SOT||Start of Text||Heads text and used to mark end of heading.|
|^C||03||ETX||End of Text|
Marks end of text. In keyboard input, it is frequently used as Break character to interrupt process.
Notably seen in Unix based command lines, nano editor, etc. as (^C) to break command.
|^D||04||EOT||End of Transmission|
Used to mark end of transmission of one or more texts(may involve header, broadcast text, and post-text).
It is also used to mark end-of-file(EOF) on terminal in UNIX based OS.
|^E||05||ENQ||Enquiry||Requests for reply from remote terminal, response may include transmitter identification and/or transmitter status.|
|^F||06||ACK||Acknowledge||This character is sent by receiver as approving response to sender. (Response to ENQ)|
|^G||07||ACK||Bell||A control character to call for attention. It may control alarm or attention devices. Initially, it was used to play bell sound on terminal.|
|^H||08||BS||BackSpace||Shifts cursor one character position behind. While in input mode this might delete character to left of cursor. When in output mode, character once written could not be deleted(Primitively).|
|^I||09||HT||Horizontal Tabulation||Shifts cursor to next determined character position on the same line.|
|^J||0A||LF||Line Feed||Shifts cursor to equivalent character position of next line. It is used to mark end-of-line(EOF) in UNIX. In DOS/Windows LF is used after CR(Carriage Return) to mark end-of-line.|
|^K||0B||VT||Vertical Tabulation||Shifts cursor at next line.|
It commands printer to discard current page and to proceed to print at the next one.
More so, it also acts as whitespace in various programming languages,
|^M||0D||CR||Carriage Return||Primitively used to move cursor to very first column while staying on the same line/row. In DOS, /Windows, it is used before LF to mark end-of-line(EOF). Enter/Return key corresponds to this character.|
|^N||0E||SO||Shift Out||Switches to substitute character set.|
|^O||0F||SI||Shift In||Reverts to general character set after Shift Out.|
|^P||10||DLE||Data Link Escape||It is used particularly to deliver additional data transmission control functions. Only graphic characters and transmission control characters can be used in DLE sequences.|
|^Q||11||DC1||Device Control 1 (XON)||A device control character, basically dedicated to turning on or starting essential device. It might also be used to restore any device to basic mode of operation.|
|^R||12||DC2||Device Control 2||A device control character which is basically dedicated to turning on or starting essential device. It might also be used to set any device to special mode of operation|
|^S||13||DC3||Device Control 3 (XOFF)||A device control character which is basically dedicated to turning off or stopping an essential device. Also acts as secondary step stop(e.g: wait, pause, stand-by or halt)|
|^T||14||DC4||Device Control 4||A device control character, basically dedicated to turning off al device. It might also be used for any device control purpose not granted by other DCs.|
|^U||15||NAK||Negative acknowledge||A control character sent by receiver as negative acknowledgment/response to transmitter. NAK also indicates that an error was identified in last received block.|
|^V||16||SYN||Synchronous Idle||Used by synchronous transmission network to provide signal from which synchronous rectification may be achieved between data terminal equipment|
|^W||17||ETB||End of Transmission Block||marks end of transmission segment of data (where data is divided into such segments for transmission)|
|^X||18||CAN||Cancel||Indicates that data preceding it is in error. Hence, data is to be ignored.|
|^Y||19||EM||End of Medium||A control character that can be used to find physical end of medium or end of wanted portion of data.|
|^Z||1A||SUB||Substitute||Used as an alternative for character that has been detected to be invalid or in error. On Unix, ^Z is keyboard signal to suspend process. In DOS/Windows, it is used to mark end of file, in cmd terminal, text files and many scripts.|
|^[||1B||ESC||Escape||Esc key corresponds to this control character on almost every operating system. Used in many interface to escape from screen, menu, or process.,|
|^\||1C||FS||File Separator||Used to separate data logically, its specific purpose has to be defined for each application. When used in hierarchical order, it delimits data item called file.|
|^]||1D||GS||Group Separator||Used to separate data logically; its specific purpose has to be defined for each application. When used in hierarchical order, it delimits data item called group.|
|^^||1E||RS||Record Separator||Used to separate data logically; its specific purpose has to be defined for each application. When used in hierarchical order, it delimits data item called record.|
|^_||1F||US||Unit Separator||Used to separate data logically; its specific purpose has to be defined for each application. When used in hierarchical order, it delimits data item called unit.|
|20||SP||Space||Space is graphic character. Shifts cursor to move by one character position.|
|^?||7F||DEL||Delete||The delete control character is last character in ASCII repertoire. It was designed to erase incorrect characters.|