El código de control C0 y C1 o los conjuntos de caracteres de control definen códigos de control para su uso en texto por sistemas informáticos que utilizan ASCII y derivados de ASCII. Los códigos representan información adicional sobre el texto, como la posición de un cursor, una instrucción para iniciar una nueva línea o un mensaje de que se ha recibido el texto.
Los códigos C0 son del rango 00 HEX –1F HEX y el conjunto C0 predeterminado se definió originalmente en ISO 646 ( ASCII ). Los códigos C1 son del rango 80 HEX –9F HEX y el conjunto C1 predeterminado se definió originalmente en ECMA-48 (armonizado posteriormente con ISO 6429). El sistema ISO / IEC 2022 de especificar caracteres de control y gráficos permite que otros conjuntos C0 y C1 estén disponibles para aplicaciones especializadas, pero rara vez se utilizan.
Controles C0
ASCII definió 32 caracteres de control, más uno adicional necesario para el carácter DEL todo-1 (necesario para perforar todos los agujeros en una cinta de papel y borrarlo).
Esta gran cantidad de códigos era deseable en ese momento, ya que los controles multibyte requerirían la implementación de una máquina de estado en el terminal, lo cual era muy difícil con los terminales electrónicos y mecánicos contemporáneos. Desde entonces, sólo algunos de los controles originales han mantenido su uso: el rango de "espacios en blanco" de BS, TAB, LF, VT, FF y CR; el código BEL; y ESC (pero, excepto en ISO-2022-JP , casi siempre como parte de un ESC, '[' representación CSI que inicia una secuencia de escape ANSI ). Otros no se utilizan o han adquirido significados diferentes, como que NUL es el terminador de cadena C.
Algunos protocolos de transmisión en serie como ANPA-1312 , Kermit y XMODEM hacen un uso extensivo de los caracteres de control SOH, STX, ETX, EOT, ACK, NAK y SYN con fines que se aproximan a sus definiciones originales.
Códigos de control ASCII básicos
Estos son los códigos de control ASCII estándar, originalmente definidos en ANSI X3.4 . Si utiliza el mecanismo de extensión ISO / IEC 2022 , se designan como el juego de caracteres de control C0 activo con la secuencia de octetos 0x1B 0x21 0x40
( ESC ! @
). [1]
Seq | dic | Maleficio | Abreviatura | Símbolo | Nombre | C | Descripción | ||
---|---|---|---|---|---|---|---|---|---|
^@ | 00 | 00 | NUL | ␀ | Nulo | \0 | Originalmente utilizado para permitir que se dejen espacios en la cinta de papel para las ediciones. Posteriormente se utiliza para rellenar después de un código que puede llevar algún tiempo a un terminal para procesar (por ejemplo, un retorno de carro o un salto de línea en un terminal de impresión). Ahora se usa a menudo como terminador de cadenas, especialmente en el lenguaje de programación C. | ||
^A | 01 | 01 | SOL | ␁ | Inicio de rumbo | En la transmisión de mensajes, delimita el inicio de un encabezado de mensaje. El formato de este encabezado puede definirse mediante un protocolo aplicable, como IPTC 7901 para la transmisión de texto periodístico, y normalmente lo termina STX. [2] En Hadoop , a menudo se utiliza como separador de campos. | |||
^B | 02 | 02 | STX | ␂ | Inicio del texto | Primer carácter del texto del mensaje y puede usarse para terminar el encabezado del mensaje. | |||
^C | 03 | 03 | ETX | ␃ | Fin del texto | En la transmisión de mensajes, delimita el final del texto principal de un mensaje. Puede ir seguido de "información posterior al texto" (es decir, un pie de página estructurado) definido por un protocolo aplicable [2] o por cualquier texto adicional, [3] seguido de EOT. [2] [3] En la entrada de teclado, a menudo se usa como un carácter de "interrupción" (Ctrl-C) para interrumpir o terminar un programa o proceso. | |||
^D | 04 | 04 | EOT | ␄ | Fin de transmisión | Delimita el final de un mensaje transmitido, que puede incluir un encabezado, texto del mensaje y pie de página posterior al texto, [2] o incluso varios textos y encabezados asociados. [3] También se puede utilizar para colocar terminales en espera. [3] A menudo se usa en Unix para indicar el final del archivo en una terminal. | |||
^E | 05 | 05 | ENQ | ␅ | Consulta | Señal destinada a desencadenar una respuesta en el extremo receptor, para ver si todavía está presente. | |||
^F | 06 | 06 | ACK | ␆ | Reconocer | Respuesta a una ENQ, o una indicación de la recepción exitosa de un mensaje. | |||
^G | 07 | 07 | BEL [a] | ␇ | Campana , alerta | \a | Originalmente utilizado para hacer sonar una campana en la terminal. Posteriormente se utiliza para emitir un pitido en sistemas que no tienen timbre físico. También puede activar y desactivar rápidamente el video inverso (una campana visual). | ||
^H | 08 | 08 | BS | ␈ | Retroceso | \b | Mueva el cursor una posición hacia la izquierda. Al ingresar, esto puede borrar el carácter a la izquierda del cursor. En la salida, donde en la tecnología informática temprana un carácter una vez impreso no se podía borrar, el retroceso se usaba a veces para generar caracteres acentuados en ASCII. Por ejemplo, à podría producirse utilizando la secuencia de tres caracteres a BS ` (o, utilizando los valores hexadecimales de los caracteres 0x61 0x08 0x60 ). Este uso ahora generalmente no es compatible (está prohibido, por ejemplo, en ISO / IEC 8859 ). [9] Para evitar ambigüedades entre los dos usos potenciales del retroceso, el código de control de caracteres de cancelación se convirtió en parte del conjunto de control C1 estándar. | ||
^I | 09 | 09 | HT | ␉ | Tabulación de caracteres, tabulación horizontal | \t | Posición hasta la siguiente parada de tabulación de carácter . | ||
^J | 10 | 0A | LF | ␊ | Linea de alimentación | \n | En máquinas de escribir , impresoras y algunos emuladores de terminal , mueve el cursor una fila hacia abajo sin afectar la posición de la columna. En Unix, se usa para marcar el final de la línea . En DOS , Windows y varios estándares de red, LF se usa después de CR como parte de la marca de final de línea. | ||
^K | 11 | 0B | Vermont | ␋ | Tabulación de líneas, tabulación vertical | \v | Coloque el formulario en la siguiente línea de tabulación. | ||
^L | 12 | 0C | FF | ␌ | Alimentación de formulario | \f | En impresoras, cargue la página siguiente. Se tratan como espacios en blanco en muchos lenguajes de programación y se pueden utilizar para separar divisiones lógicas en el código. En algunos emuladores de terminal, borra la pantalla. Todavía aparece en algunos archivos de texto sin formato comunes como un carácter de salto de página , como los RFC publicados por IETF . | ||
^M | 13 | 0D | CR | ␍ | Retorno de carro | \r | Originalmente utilizado para mover el cursor a la columna cero mientras permanece en la misma línea. En Mac OS clásico (anterior a Mac OS X ), así como en sistemas anteriores como Apple II y Commodore 64 , se utiliza para marcar el final de la línea . En DOS , Windows y varios estándares de red, se usa antes de LF como parte de la marca de final de línea. La tecla Intro o Retorno de un teclado enviará este carácter, pero un programa de terminal puede convertirlo a una secuencia de final de línea diferente. | ||
^N | 14 | 0E | ENTONCES | ␎ | Desplazar fuera | Cambie a un juego de caracteres alternativo. | |||
^O | 15 | 0F | SI | ␏ | Desplazar en | Vuelve al juego de caracteres normal después de Shift Out. | |||
^P | dieciséis | 10 | DLE | ␐ | Escape de enlace de datos | Causar que un número limitado de octetos contiguos se interpreten de alguna manera diferente, [10] por ejemplo como datos brutos (en contraposición a códigos de control o caracteres gráficos). Los detalles de esto dependen de la implementación. Existían estándares como (el ahora retirado) ECMA-37 para aplicaciones específicas del carácter Data Link Escape para acceder a funciones adicionales de control de transmisión. [11] El esquema de compresión estándar para Unicode sugiere reemplazar todos los bytes del rango C0 con DLE, seguido de ese byte más 0x40, si los datos de la SCSU deben transmitirse a través de un sistema que se confundiría con la reutilización de los bytes C0 por parte de la SCSU. [12] | |||
^Q | 17 | 11 | DC1 | ␑ | Control de dispositivo uno ( XON ) | Estos cuatro códigos de control están reservados para el control del dispositivo, y la interpretación depende del dispositivo al que están conectados. DC1 y DC2 estaban destinados principalmente a indicar la activación de un dispositivo, mientras que DC3 y DC4 estaban destinados principalmente a indicar pausar o apagar un dispositivo. DC1 y DC3 (conocidos también como XON y XOFF respectivamente en este uso) se originaron como las funciones de "iniciar y detener el lector de cinta de papel remoto" en las redes ASCII Telex . Este uso de la teleimpresora se convirtió en el estándar de facto para el control de flujo de software . [13] | |||
^R | 18 | 12 | DC2 | ␒ | Control de dispositivo dos | ||||
^S | 19 | 13 | DC3 | ␓ | Control de dispositivo tres ( XOFF ) | ||||
^T | 20 | 14 | DC4 | ␔ | Control de dispositivo cuatro | ||||
^U | 21 | 15 | NAK | ␕ | Reconocimiento negativo | Enviado por una estación como respuesta negativa a la estación con la que se ha establecido la conexión. En el protocolo de comunicación síncrona binaria, el NAK se usa para indicar que se detectó un error en el bloque recibido previamente y que el receptor está listo para aceptar la retransmisión de ese bloque. En los sistemas multipunto, el NAK se utiliza como la respuesta no preparada a una encuesta. | |||
^V | 22 | dieciséis | SYN | ␖ | Inactivo sincrónico | Se utiliza en sistemas de transmisión síncrona para proporcionar una señal a partir de la cual se puede lograr la corrección síncrona entre equipos terminales de datos, particularmente cuando no se está transmitiendo ningún otro carácter. | |||
^W | 23 | 17 | ETB | ␗ | Fin del bloque de transmisión | Indica el final de un bloque de transmisión de datos cuando los datos se dividen en dichos bloques con fines de transmisión. Si no está en uso para otro propósito, IPTC 7901 recomienda interpretar ETB como un carácter de final de párrafo. [2] | |||
^X | 24 | 18 | LATA | ␘ | Cancelar | Indica que los datos que lo preceden son erróneos o deben ignorarse. | |||
^Y | 25 | 19 | EM | ␙ | Fin de medio | Destinado como medio para indicar en papel o cintas magnéticas que se ha alcanzado el final de la parte utilizable de la cinta. También puede marcar el final de la parte utilizada del medio y no corresponde necesariamente al final físico del medio. [1] Si no está en uso para otro propósito, IPTC 7901 recomienda reutilizar EM como un espacio em para sangrar la primera línea de un párrafo [2] (ver también EMSP ). | |||
^Z | 26 | 1A | SUB | ␚ | Sustituir | Originalmente diseñado para usarse como un carácter de control de transmisión para indicar que se habían recibido caracteres ilegibles o inválidos. A menudo se ha utilizado para otros fines cuando la señalización de errores dentro de banda que proporciona no es necesaria, especialmente cuando se utilizan métodos robustos de detección y corrección de errores, o cuando se espera que los errores sean lo suficientemente raros como para hacer que se utilice el carácter para otros fines aconsejables. En DOS , Windows , CP / M y otros derivados de los sistemas operativos de Digital Equipment Corporation , se usa para indicar el final del archivo, tanto al escribir en el terminal, como a veces en archivos de texto almacenados en el disco. | |||
^[ | 27 | 1B | ESC | ␛ | Escape | \e[b] | The Esc key on the keyboard will cause this character to be sent on most systems. It can be used in software user interfaces to exit from a screen, menu, or mode, or in device-control protocols (e.g., printers and terminals) to signal that what follows is a special command sequence rather than normal text. In systems based on ISO/IEC 2022, even if another set of C0 control codes are used, this octet is required to always represent the escape character.
| ||
^\ | 28 | 1C | FS | ␜ | File Separator | Can be used as delimiters to mark fields of data structures. If used for hierarchical levels, US is the lowest level (dividing plain-text data items), while RS, GS, and FS are of increasing level to divide groups made up of items of the level beneath it. The Unix info format uses US, followed by an optional form-feed and a line break, to mark the beginning of a node.[14] MARC 21 uses US as a subfield delimiter, RS as a field terminator and GS as a record terminator.[15] In the current edition of IPTC 7901, if they are not used for other purposes, US is recommended for use as a column separator in tables, FS as a "Central Field Separator" in tables, and GS and RS respectively for marking a following space or hyphen-minus as non-breaking or soft respectively (in character sets not supplying explicit NBSP and SHY characters).[2] Python's | |||
^] | 29 | 1D | GS | ␝ | Group Separator | ||||
^^ | 30 | 1E | RS | ␞ | Record Separator | ||||
^_ | 31 | 1F | US | ␟ | Unit Separator | ||||
While not technically part of the C0 control character range, the following two characters are defined in ISO/IEC 2022 as always being available regardless of which sets of control characters and graphics characters have been registered. They can be thought of as having some characteristics of control characters. | |||||||||
32 | 20 | SP | ␠ | Space | Space is a graphic character. It has a visual representation consisting of the absence of a graphic symbol. It causes the active position to be advanced by one character position. In some applications, Space can be considered a lowest-level "word separator" to be used with the adjacent separator characters. | ||||
^? | 127 | 7F | DEL | ␡ | Delete | Not technically part of the C0 control character range, this was originally used to mark deleted characters on paper tape, since any character could be changed to all ones by punching holes everywhere. On VT100 compatible terminals, this is the character generated by the key labelled ⌫, usually called backspace on modern machines, and does not correspond to the PC delete key. |
Category-Number names
Several of the basic ASCII control codes are classified into a few categories, and sometimes given alternative abbreviated names consisting of that category and a number:[1]
- Transmission controls:[1] TC1 (SOH), TC2 (STX), TC3 (ETX), TC4 (EOT), TC5 (ENQ), TC6 (ACK), TC7 (DLE), TC8 (NAK), TC9 (SYN), TC10 (ETB).
- Format effectors:[1] FE0 (BS), FE1 (HT), FE2 (LF), FE3 (VT), FE4 (FF), FE5 (CR).
- Device controls:[1] DC1, DC2, DC3, DC4.
- Information separators:[1] IS1 (US), IS2 (RS), IS3 (GS), IS4 (FS).
- Locking shifts:[17] LS0 (SI), LS1 (SO).
- Others: NUL, BEL, CAN, EM, SUB, ESC.
ISO/IEC 2022 (ECMA-35) refers to the C0 locking shifts as LS0 and LS1 in 8-bit environments, and as SI and SO in 7-bit environments.[17]
The first, 1963 edition of ASCII classified DLE as a device control, rather than a transmission control, and gave it the abbreviation DC0 ("device control reserved for data link escape").[18]
Format effector (FE) codes define and actuate formatting (such as line breaks) which affects how graphical characters are laid out and rendered, as opposed to controlling other functions of hardware devices or having other side effects. The C0 format effectors are permitted in ISO/IEC 6429 DCS, OSC, PM and APC sequences. The information separators and C0 format effectors (minus BS) are the only C0 control codes with semantics defined by the Unicode Standard, the interpretation of the remainder of the C0 controls being left to higher-level protocols.[19]
ISO/IEC 2022 (ECMA-35) requires that if C0 control code sets include the ten ASCII transmission control (TC) codes, they must be encoded at their ASCII locations.[20] It also prohibits those ten transmission controls from being included in a C1 control code set,[21] and prohibits transmission controls besides those ten from being included in a C0 control set.[20]
Modified C0 control code sets
Although C0 control code sets usually preserve most of the ASCII control codes unchanged, a number are registered which replace certain control functions with alternatives. A selection of these, excluding those related to Videotex, are shown below.
Seq | Dec | Hex | Replaced | In code set(s) | Abbrev | Name | Description |
---|---|---|---|---|---|---|---|
^I | 09 | 09 | HT | NATS,[22] IPTC[23] | FO | Formatting | Used in tabular data to move to the next tabulation position (retaining "Tab" semantics in this regard), and in standard formats to denote the next phase. The current IPTC specification instead recommends using regular ASCII C0 controls, and using the US control as a column break in tables.[2] |
^K | 11 | 0B | VT | NATS,[22] IPTC[23] | ECD | End of Instruction | Delimits the end of a typographical instruction intended for the typesetting device. |
^L | 12 | 0C | FF | NATS,[22] IPTC[23] | SCD | Start of Instruction | Delimits the start of a typographical instruction intended for the typesetting device. |
^M | 13 | 0D | CR | NATS,[22] IPTC[23] | QL | Quad Left | Terminates a line, indicating that it should be left-aligned. The current IPTC specification instead recommends using regular ASCII C0 controls, and representing this function with the < CR LF sequence.[2] |
^N | 14 | 0E | SO | NATS[22] | UR | Upper Rail | Starts an emphasised region of text. Used in Scandinavian journalistic text transmission as of 1975;[22] IPTC recommendations as of 1976 used FT2 and FT3 instead (see below).[23] The current IPTC specification instead recommends using regular ASCII C0 controls, and marking up this function with the ^ character.[2] |
^O | 15 | 0F | SI | NATS[22] | LR | Lower Rail | Ends an emphasised region of text. Used in Scandinavian journalistic text transmission as of 1975;[22] IPTC recommendations as of 1976 used FT1 instead (see below).[23] The current IPTC specification instead recommends using regular ASCII C0 controls, and marking up this function with the @ character.[2] |
^Q | 17 | 11 | DC1 | IPTC[23] | FT1 | Font One | Switches to regular typeface, i.e. disables bold or italic. |
^R | 18 | 12 | DC2 | IPTC[23] | FT2 | Font Two | Switches to italic typeface. |
^S | 19 | 13 | DC3 | IPTC[23] | FT3 | Font Three | Switches to bold typeface. |
^X | 24 | 18 | CAN | NATS,[22] IPTC[23] | KW | Kill Word | Deletes the preceding word (deletes back to and including the last space, or back to and excluding the previous line break, whichever it encounters first). Retains "Cancel" semantics in this respect, but has a more specific function. |
^Y | 25 | 19 | EM | T.61/T.51,[24] Standalone[25] | SS2 | Single Shift Two | Non-locking shift code for G2; a C0 representation allowing it to be represented with one byte in a 7-bit environment. |
^\ | 28 | 1C | FS | NATS,[22] IPTC,[23] Standalone[26] | SS, SS2 | Super Shift or Single Shift Two | Non-locking shift code. |
JIS C 6225[27] | CEX | Control Extension | Introduces a control sequence as specified by the now-withdrawn JIS C 6225, designated JIS X 0207 in later sources.[28] These included sequences for controlling vertical text behaviour, superscripts and subscripts,[29] and for transmitting custom character graphics.[28] | ||||
^] | 29 | 1D | GS | NATS,[22] IPTC[23] | QC | Quad Centre | Terminates a line, indicating that it should be centred. |
T.61/T.51[24] | SS3 | Single Shift Three | Non-locking shift code for G3; a C0 representation allowing it to be represented with one byte in a 7-bit environment. | ||||
^^ | 30 | 1E | RS | NATS,[22] IPTC[23] | QR | Quad Right | Terminates a line, indicating that it should be right-aligned. |
^_ | 31 | 1F | US | NATS,[22] IPTC[23] | JY | Justify | Terminates a line which is to be justified. |
Other C0 control code sets
Teletext defines an entirely different set of control codes. In formats where compatibility with ECMA-48's C0 control codes is not required, these control codes are sometimes mapped transparently to the Unicode C0 control code range (U+0000 through U+001F).[30]
Controles C1
In parallel to the development of the 1972 edition of ISO 646, which revised the standard to introduce the concept of national versions of the code in addition to the US-originated ASCII, work was also underway with the purpose of defining extension mechanisms for ASCII, applicable to both 7-bit and 8-bit environments, which would be published as ECMA-35 and ISO 2022.[31]
These mechanisms were designed so that any conformant 8-bit code could be converted to a corresponding 7-bit code, and vice versa.[32] In a 7-bit environment, the Shift Out ( SO) control would change the meaning of the 94 bytes 0x21
through 0x7E
(i.e. the graphical codes, excluding the space) to invoke characters from an alternative set, and the Shift In ( SI) control would change them back.[33] In an 8-bit environment, instead of using shift codes, the eighth bit was set on a byte referencing the additional graphic character set. This meant that bytes 0xA1
through 0xFE
were used for the additional graphic characters. The C0 control characters, being unaffected by the shift state of a 7-bit code, were to always be represented in an 8-bit code with the eighth bit unset.[32] The consequently otherwise-unused bytes in the range 0x80
through 0x9F
could be used for additional control codes, which would instead be represented as 0x1B 0x40
through 0x1B 0x5F
(ESC @
through ESC _
) in a 7-bit code.[32] These additional control codes become known as the C1 control codes. To retain compatibility with the 7-bit representation, the behaviour of bytes 0xA0
and 0xFF
was originally left undefined.[34]
The first C1 control code set to be registered for use with ISO 2022 was DIN 31626,[35] a specialised set for bibliographic use which was registered in 1979.[36] The general-use ISO/IEC 6429 set was registered in 1983,[37] although the ECMA-48 specification upon which it was based had been first published in 1976.[38]
Further editions of the standards altered the provisions to an extent. For instance, a further revision to ECMA-35 and ISO 2022 in 1985 introduced the concept of a 96-code graphical character set.[39] In an 8-bit code, this allowed the entire range from 0xA0
to 0xFF
to be used for graphical characters. Use of 96-code sets also meant that the meaning of the bytes 0x20
and 0x7F
in the corresponding 7-bit code could differ from "Space" and "Delete", unless the code was in the Shift In state.[40] Using 96-code sets for the G0 (Shift In) set was not made possible.[39]
In accordance with this revised 8-bit ISO 2022 code structure, ISO 8859 defines sets of characters to be encoded over 0xA0–FF, in combination with the ASCII graphical characters over 0x20–7E, and reserves the bytes outside of these ranges for use as non-graphical codes by other specifications such as ISO 6429.[41] Unicode inherits its first 256 code points from ISO 8859-1, hence also incorporating a range reserved for a C1 control code set, although it mostly leaves their function to be defined by higher level protocols, with ISO 6429 suggested as a default.[19]
C1 control codes for general use
These are the most common extended control codes, and are defined in ISO/IEC 6429, ECMA-48 and JIS X 0211 (formerly JIS C 6323).[42] If using the ISO/IEC 2022 extension mechanism, they are designated as the active C1 control character set with the sequence 0x1B 0x22 0x43
(ESC " C
).[37] Although Unicode does not require a particular C1 control code set, leaving their interpretation to be specified by higher-level protocols, and only specifies a behaviour for U+0085, it suggests interpreting C1 control codes as specified in ISO/IEC 6429 in the absence of use for other purposes.[19] Also listed in the table below are three control codes listed alongside the ISO/IEC 6429 codes in RFC 1345, but not actually defined by ISO/IEC 6429 ( PAD, HOP and SGC).[5][43]
Except for SS2 and SS3 in EUC-JP text, and NEL in text transcoded from EBCDIC, the 8-bit forms of these codes are almost never used. CSI, DCS and OSC are used to control text terminals and terminal emulators, but almost always by using their 7-bit escape code representations. Their ISO/IEC 2022 compliant single-byte representations are invalid in UTF-8, and the UTF-8 encodings of their corresponding codepoints are two bytes long like their escape code forms (for instance, CSI at U+009B is encoded as the bytes 0xC2, 0x9B in UTF-8), so there is no advantage to using them rather than the equivalent two-byte escape sequence. When these codes appear in modern documents, web pages, e-mail messages, etc., they are usually intended to be printing characters at that position in a proprietary encoding such as Windows-1252 or Mac OS Roman that use the C1 codes to provide additional graphic characters.
The official English language names of some C1 codes were revised in the most recent edition of the standard for control codes in general (ISO 6429:1992 or ECMA-48:1991) to be neutral with respect to the graphic characters used with them, and to not assume that, as in the Latin script, lines are written on a page from top to bottom and that characters are written on a line from left to right. The abbreviations used were not changed, as the standard had already specified that those would remain unchanged when the standard is translated to other languages. Where the name has been changed, the original name from which the abbreviation was derived is also given in parenthesis in the tables below.
Esc+ | Dec | Hex | Acro | Name | Description[44] |
---|---|---|---|---|---|
@ | 128 | 80 | PAD[6] | Padding Character | Not part of ISO/IEC 6429 (ECMA-48). In early drafts of ISO 10646, was used as part of a proposed mechanism to encode non-ASCII characters. This use was removed in later drafts.[5][43] Is nonetheless used by the internal-use two-byte fixed-length form of the ISO-2022-based Extended Unix Code (EUC) for left-padding single byte characters in code sets 1 and 3, whereas NUL serves the same function for code sets 0 and 2. This is not done in the usual "packed" EUC format.[45] |
A | 129 | 81 | HOP[6] | High Octet Preset | Not part of ISO/IEC 6429 (ECMA-48). In early drafts of ISO 10646, was intended as a means of introducing a sequence of ISO 2022 compliant multiple byte characters with the same first byte without repeating said first byte, thus reducing length; this behaviour was never part of a standard or published implementation. Its name was nonetheless retained as an RFC 1345 standard code-point name.[5][43] |
B | 130 | 82 | BPH | Break Permitted Here | Follows a graphic character where a line break is permitted. Roughly equivalent to a soft hyphen except that the means for indicating a line break is not necessarily a hyphen. Not part of the first edition of ISO/IEC 6429.[37] See also zero-width space. |
C | 131 | 83 | NBH | No Break Here | Follows the graphic character that is not to be broken. Not part of the first edition of ISO/IEC 6429.[37] See also word joiner. |
D | 132 | 84 | IND | Index | Move the active position one line down, to eliminate ambiguity about the meaning of LF. Deprecated in 1988 and withdrawn in 1992 from ISO/IEC 6429 (1986 and 1991 respectively for ECMA-48). |
E | 133 | 85 | NEL | Next Line | Equivalent to CR+LF. Used to mark end-of-line on some IBM mainframes. |
F | 134 | 86 | SSA | Start of Selected Area | Used by block-oriented terminals. |
G | 135 | 87 | ESA | End of Selected Area | |
H | 136 | 88 | HTS | Character Tabulation Set Horizontal Tabulation Set | Causes a character tabulation stop to be set at the active position. |
I | 137 | 89 | HTJ | Character Tabulation With Justification Horizontal Tabulation With Justification | Similar to Character Tabulation, except that instead of spaces or lines being placed after the preceding characters until the next tab stop is reached, the spaces or lines are placed preceding the active field so that preceding graphic character is placed just before the next tab stop. |
J | 138 | 8A | VTS | Line Tabulation Set Vertical Tabulation Set | Causes a line tabulation stop to be set at the active position. |
K | 139 | 8B | PLD | Partial Line Forward Partial Line Down | Used to produce subscripts and superscripts in ISO/IEC 6429, e.g., in a printer. Subscripts use PLD text PLU while superscripts use PLU text PLD . |
L | 140 | 8C | PLU | Partial Line Backward Partial Line Up | |
M | 141 | 8D | RI | Reverse Line Feed Reverse Index | |
N | 142 | 8E | SS2 | Single-Shift 2 | Next character invokes a graphic character from the G2 or G3 graphic sets respectively. In systems that conform to ISO/IEC 4873 (ECMA-43), even if a C1 set other than the default is used, these two octets may only be used for this purpose. |
O | 143 | 8F | SS3 | Single-Shift 3 | |
P | 144 | 90 | DCS | Device Control String | Followed by a string of printable characters (0x20 through 0x7E) and format effectors (0x08 through 0x0D), terminated by ST (0x9C). This may be used by variable-length control sequences for text terminals and terminal emulators, such as terminfo queries.[46] |
Q | 145 | 91 | PU1 | Private Use 1 | Reserved for a function without standardized meaning for private use as required, subject to the prior agreement of the sender and the recipient of the data. |
R | 146 | 92 | PU2 | Private Use 2 | |
S | 147 | 93 | STS | Set Transmit State | |
T | 148 | 94 | CCH | Cancel character | Destructive backspace, intended to eliminate ambiguity about meaning of BS. |
U | 149 | 95 | MW | Message Waiting | |
V | 150 | 96 | SPA | Start of Protected Area | Used by block-oriented terminals. |
W | 151 | 97 | EPA | End of Protected Area | |
X | 152 | 98 | SOS | Start of String | Followed by a control string terminated by ST (0x9C) which, in contrast to those initiated by DCS, OSC, PM or APC, may contain any character except SOS or ST. Not part of the first edition of ISO/IEC 6429.[37] MARC 21 uses SOS and ST in Unicode-format records to mark up a string which should be ignored for collation purposes, while MARC-8 format records use NSB and NSE for the same purpose.[15][47] |
Y | 153 | 99 | SGC[6] | Single Graphic Character Introducer | Not part of ISO/IEC 6429. In early drafts of ISO 10646, was used to encode a single multiple-byte character without switching out of a HOP mode. In later drafts, this facility was removed, the name was nonetheless retained as an RFC 1345 standard code-point name.[5][43] |
Z | 154 | 9A | SCI | Single Character Introducer | To be followed by a single printable character (0x20 through 0x7E) or format effector (0x08 through 0x0D). The intent was to provide a means by which a control function or a graphic character that would be available regardless of which graphic or control sets were in use could be defined. Definitions of what the following byte would invoke was never implemented in an international standard. Not part of the first edition of ISO/IEC 6429.[37] |
[ | 155 | 9B | CSI | Control Sequence Introducer | Used to introduce control sequences that take parameters. |
\ | 156 | 9C | ST | String Terminator | Terminates a variable-length control string initiated by DCS, SOS, OSC, PM or APC. |
] | 157 | 9D | OSC | Operating System Command | Followed by a string of printable characters (0x20 through 0x7E) and format effectors (0x08 through 0x0D), terminated by ST (0x9C). These three control codes were intended for use to allow in-band signaling of protocol information, but are rarely used for that purpose. Some terminal emulators, including xterm, support OSC sequences for setting the window title and reconfiguring the available colour palette. They may also support terminating an OSC sequence with BEL as a non-standard alternative to the standard ST.[48] APC is sometimes used to transmit Kermit commands, although this may be disabled or filtered for security reasons.[49] |
^ | 158 | 9E | PM | Privacy Message | |
_ | 159 | 9F | APC | Application Program Command |
C1 control codes for bibliographic use
The following alternative C1 control code set is defined for bibliographic applications such as library systems. It is mostly concerned with string collation, and with markup of bibliographic fields. Slightly different variants are defined in the German standard DIN 31626[36] (published in 1978 and since withdrawn)[50] and the ISO standard ISO 6630,[51][52] the latter of which has also been adopted in Germany as DIN ISO 6630.[53] Where these differ is noted in the table below where applicable. MARC-8 uses the coding of NSB and NSE from this set, and adds some additional format effectors in locations not used by the ISO version; however, MARC 21 uses this control set only in MARC-8 records, not in Unicode-format records.[15]
If using the ISO/IEC 2022 extension mechanism, the DIN 31626 set is designated as the active C1 control character set with the sequence 0x1B 0x22 0x45
(ESC " E
),[36] and the ISO 6630 / DIN ISO 6630 set is designated with the sequence 0x1B 0x22 0x42
(ESC " B
).[51] The 1985 expansion of the ISO 6630 set can also be explicitly specified by using the sequence 0x1B 0x26 0x40 0x1B 0x22 0x42
(ESC & @ ESC " B
).[52]
Esc+ | Dec | Hex | Acro | Name | Description[36][51][52] |
---|---|---|---|---|---|
@…F | 128…134 | 80…86 | - | (reserved) | |
G | 135 | 87 | CUS | Close-Up for Sorting | (DIN 31626, ISO 6630) Declares that two successive character sequences separated by a space or separator should be treated as one word for collation purposes. |
H | 136 | 88 | NSB | Non-Sorting Characters Begin | (DIN 31626, ISO 6630, MARC 21) Marks the start of a sequence of characters to be ignored for collation purposes. MARC 21 uses this character in MARC-8 records, but uses 0x98 ( SOS) in Unicode records for the same purpose.[15][47] |
I | 137 | 89 | NSE | Non-Sorting Characters End | (DIN 31626, ISO 6630, MARC 21) Marks the end of a sequence of characters to be ignored for collation purposes. MARC 21 uses this character in MARC-8 records, but uses 0x9C ( ST) in Unicode records for the same purpose.[15][47] |
J | 138 | 8A | FIL | Filler Character | (DIN 31626) Substitutes for a mandatory alphanumeric character in a field. |
K | 139 | 8B | TCI | Tag in Context Indicator | (DIN 31626) Within a bibliographic field, used to refer to data in another bibliographic field by its tag number. |
PLD | Partial Line Down | (ISO 6630) Not in the original edition of ISO 6630.[51] In the 1985 edition of ISO 6630,[52] used for Partial Line Down (see PLD above). | |||
L | 140 | 8C | ICI | Identification Number in Context Indicator | (DIN 31626) Within a bibliographic field, used to refer to data in another bibliographic record by its ID number. |
PLU | Partial Line Up | (ISO 6630) Not in original edition of ISO 6630.[51] In the 1985 edition of ISO 6630,[52] used for Partial Line Up (see PLU above). | |||
M | 141 | 8D | OSC[c] | Optional Syllabification[d] Control | (DIN 31626) Marks a syllable boundary in a long word. See also soft hyphen. |
ZWJ | Joiner | (MARC 21) In MARC-8, used for the Zero-Width Joiner, while U+200D is used in Unicode-format MARC records.[15][47] | |||
N | 142 | 8E | SS2 | Single-Shift 2 | (DIN 31626) Non-locking shift code, see SS2 above. |
ZWNJ | Non-Joiner | (MARC 21) In MARC-8, used for the Zero-Width Non-Joiner, while U+200C is used in Unicode-format MARC records.[15][47] | |||
O | 143 | 8F | SS3 | Single-Shift 3 | (DIN 31626) Non-locking shift code, see SS3 above. |
P | 144 | 90 | - | (reserved) | |
Q | 145 | 91 | EAB | Embedded Annotation Beginning | (DIN 31626, ISO 6630) Marks the start of a variable-length annotation which is embedded within a bibliographic field, as opposed to separated using content designation. |
R | 146 | 92 | EAE | Embedded Annotation End | (DIN 31626, ISO 6630) Marks the end of a variable-length embedded annotation. |
S | 147 | 93 | ISB | Item Specification Beginning | (DIN 31626) Marks the start of a string of specific information of some description, other than a keyword or a permutation string. |
T | 148 | 94 | ISE | Item Specification End | (DIN 31626) Marks the end of a string of specific information. |
U | 149 | 95 | SIB | Sorting Interpolation Beginning | (ISO 6630) Marks the beginning of a sequence of characters used for collation purposes only. |
V | 150 | 96 | SIE | Sorting Interpolation End | (ISO 6630) Marks the end of a sequence of characters used for collation purposes only. |
W | 151 | 97 | SSB | Secondary Sorting Value Beginning | (ISO 6630) Marks the start of a string with subordinate collation value. |
X | 152 | 98 | SSE | Secondary Sorting Value End | (ISO 6630) Marks the end of a string with subordinate collation value. |
Y | 153 | 99 | INC | Indicator for Non-Standard Character | (DIN 31626) Identifies a following non-standard character. |
Z | 154 | 9A | - | (reserved) | |
[ | 155 | 9B | - | (reserved) | |
\ | 156 | 9C | KWB | Keyword Beginning | (DIN 31626, ISO 6630) Marks the start of a keyword within a bibliographic field. |
] | 157 | 9D | KWE | Keyword End | (DIN 31626, ISO 6630) Marks the end of a keyword within a bibliographic field. |
^ | 158 | 9E | PSB | Permutation String Beginning | (DIN 31626, ISO 6630) Marks the start of a string which is to be permuted to the front of the element when references or indices are generated. Terminated by PSE or by the end of the element. |
_ | 159 | 9F | PSE | Permutation String End | (DIN 31626, ISO 6630) Marks the end of a string which is to be permuted to the front of the element. |
Other C1 control code sets
EBCDIC defines 16 additional control codes, besides those present in ASCII. When mapped to Unicode or to ISO 8859, these codes are mapped to C1 control characters in a manner specified by IBM's Character Data Representation Architecture (CDRA).[54][55]
Although the default mapping of the New Line (NL) control does correspond to the ISO/IEC 6429 NEL (0x85; although its mapping is sometimes swapped with LF, following UNIX line ending convention),[54] the remainder of the control codes do not correspond to ISO/IEC 6429. For example, the EBCDIC control SPS (0x09, mapped to 0x8D) and the ECMA-48 control PLU (0x8C) are both used to begin a superscript or end a subscript, but are not mapped to one another. Extended-ASCII-mapped EBCDIC can therefore be regarded as having its own C1 set, although it is not registered with the ISO-IR registry for use with ISO/IEC 2022.[35]
Various specialised C1 control code sets are registered for use by various Videotex formats.[35]
Unicode
Unicode sets aside 65 code points in the general category "Cc" (Control) for compatibility with ISO/IEC 2022. The control codes in this category cover U+0000—U+001F (C0 controls), U+007F (delete), and U+0080—U+009F (C1 controls). Unicode only specifies semantics for U+0009—U+000D, U+001C—U+001F, and U+0085. The rest of the control codes are transparent to Unicode and their meanings are left to higher-level protocols.[19]
Unicode has no category "Cc" code points allocated other than the C0 and C1 ones. However, it does include additional format effector characters besides those in the C0 and C1 control sets, such as marks, embeds, isolates and pops for explicit bidirectional formatting, and the zero-width joiner and non-joiner for controlling ligature use. These are given the general category "Cf" (Format) rather than "Cc".
Ver también
- Control Pictures
- ANSI escape code
Notas al pie
- ^ The name BELL is assigned by Unicode to the unrelated emoji character 🔔 (U+1F514). While C0 and C1 control characters were not formally named by the Unicode standard itself at the time, this collided with existing use of BELL as the name of this control character in software following the previous versions of UTS#18 (the Unicode Regular Expressions standard),[4] e.g. in Perl.[5] Unicode now accepts ALERT and BEL (but not BELL) as formal aliases for the control character,[6] although the code chart still lists BELL as the ISO 6429 alias,[7] and the corresponding control picture code point is called SYMBOL FOR BELL. Perl subsequently switched to using BELL for the emoji in version 5.18.[8]
- ^ The '\e' escape sequence is not part of ISO C and many other language specifications. However, it is understood by several compilers, including GCC.
- ^ Not the same as the Operating System Command (OSC) in the ISO/IEC 6429 C1 code set.
- ^ Spelled "Syllabication [sic]" in the ISO-IR-040 document, along with "syllable" being spelled "syllabe [sic]" in the description. These are presumably typographical errors.
Referencias
- ^ a b c d e f g ISO/TC 97/SC 2 (1975). The set of control characters of the ISO 646 (PDF). ITSCJ/IPSJ. ISO-IR-1.
- ^ a b c d e f g h i j k IPTC (1995). The IPTC Recommended Message Format (PDF) (5th ed.). IPTC TEC 7901.
- ^ a b c d "end-of-transmission character (EOT)". Federal Standard 1037C. 1996.
- ^ Williamson, Karl. "Re: PRI #202: Extensions to NameAliases.txt for Unicode 6.1.0".
- ^ a b c d e Ken Whistler (July 20, 2011). "Formal Name Aliases for Control Characters, L2/11-281". Unicode Consortium.
- ^ a b c d "Name Aliases". Unicode Character Database. Unicode Consortium.
- ^ "C0 Controls and Basic Latin" (PDF). Unicode Consortium.
- ^ "charnames". Perl Programming Documentation.
- ^ ISO/IEC JTC 1/SC 2 (1998-02-12). Final Text of DIS 8859-10, Information Technology — 8-bit single-byte coded graphic character sets — Part 10: Latin alphabet No. 6 (PDF). ISO/IEC FDIS 8859-10:1998, JTC1/SC2 N2992, WG3 N415.
- ^ "data link escape character (DLE)". Federal Standard 1037C. 1996.
- ^ "Supplementary transmission control functions (an extension of the basic mode control procedures for data communication systems)". European Computer Manufacturers Association. 1972. ECMA-37.
- ^ Wolf, Misha; Whistler, Ken; Wicksteed, Charles; Davis, Mark; Freytag, Asmus; Scherer, Markus (2005-05-06). "10.1 Avoiding Control Byte Values". A Standard Compression Scheme for Unicode. Unicode Consortium. UTS #6.
- ^ "What is the point of Ctrl-S?". Unix and Linux Stack exchange. Retrieved 14 February 2019.
- ^ Fox, Brian. "Adding a new node to Info". Info: The online, menu-driven GNU documentation system. GNU Project.
- ^ a b c d e f g "Control function codes". MARC 21 Specifications for Record Structure, Character Sets, and Exchange Media. Library of Congress. 2007-12-04.
- ^ "Built-in Types § str.splitlines". The Python Standard Library. Python Software Foundation.
- ^ a b ECMA (1994). "7.3: Invocation of character-set code elements". Character Code Structure and Extension Techniques (PDF) (ECMA Standard) (6th ed.). p. 14. ECMA-35.
- ^ American Standards Association (1963). American Standard Code for Information Interchange: 4. Legend. p. 6. ASA X3.4-1963.
- ^ a b c d Unicode Consortium (2019). 23.1: Control Codes (PDF). The Unicode Standard (12.0.0 ed.). pp. 868–870. ISBN 978-1-936213-22-1.
- ^ a b ECMA (1994). "6.4.2: Primary sets of coded control functions". Character Code Structure and Extension Techniques (PDF) (ECMA Standard) (6th ed.). p. 11. ECMA-35.
- ^ ECMA (1994). "6.4.3: Supplementary sets of coded control functions". Character Code Structure and Extension Techniques (PDF) (ECMA Standard) (6th ed.). p. 11. ECMA-35.
- ^ a b c d e f g h i j k l m Sveriges Standardiseringskommission (1975). NATS Control set for newspaper text transmission (PDF). ITSCJ/IPSJ. ISO-IR-7.
- ^ a b c d e f g h i j k l m n IPTC (1976). Control set for newspaper text transmission (PDF). ITSCJ/IPSJ. ISO-IR-26.
- ^ a b ITU (1985). Teletex Primary Set of Control Functions (PDF). ITSCJ/IPSJ. ISO-IR-106.
- ^ Úřad pro normalizaci a měřeni (1987). The set of control characters of ISO 646, with EM replaced by SS2 (PDF). ITSCJ/IPSJ. ISO-IR-140.
- ^ ISO/TC 97/SC 2 (1977). The set of control characters of ISO 646, with IS4 replaced by Single Shift for G2 (SS2) (PDF). ITSCJ/IPSJ. ISO-IR-36.
- ^ ISO/TC 97/SC 2 (1982). The C0 set of Control Characters of Japanese Standard JIS C 6225-1979 (PDF). ITSCJ/IPSJ. ISO-IR-74.
- ^ a b ISO/TC97/SC2/WG6. "Liaison statement to ISO/TC97/SC2/WG8 and ISO/TC97/SC18/WG8" (PDF). ISO/TC97/SC2/WG6 N317.rev.
- ^ Printronix (2012). OKI® Programmer's Reference Manual (PDF). p. 26.
- ^ Ewell, Doug (2020-10-16). "Teletext separated mosaic graphics". Unicode Mailing List Archive. Unicode Consortium.
- ^ ECMA/TC 1 (1973). "Brief History". 7-bit Input/Output Coded Character Set (PDF) (4th ed.). ECMA. ECMA-6:1973.
- ^ a b c ECMA/TC 1 (1971). "8.2: Correspondence between the 7-bit Code and an 8-bit Code". Extension of the 7-bit Coded Character Set (PDF) (1st ed.). ECMA. pp. 21–24. ECMA-35:1971.
- ^ ECMA/TC 1 (1973). "4.2: Specific Control Characters". 7-bit Input/Output Coded Character Set (PDF) (4th ed.). ECMA. p. 16. ECMA-6:1973.
- ^ ECMA/TC 1 (1974). "5: Notes on Table 1". 8-bit Coded Character Set (PDF) (1st ed.). ECMA. pp. 4–5. ECMA-43:1974.
- ^ a b c ISO/IEC International Register of Coded Character Sets To Be Used With Escape Sequences (PDF), ITSCJ/IPSJ, ISO-IR
- ^ a b c d DIN (1979-07-15). Additional Control Codes for Bibliographic Use according to German Standard DIN 31626 (PDF). ITSCJ/IPSJ. ISO-IR-40.
- ^ a b c d e f ISO/TC97/SC2 (1983-10-01). C1 Control Set of ISO 6429:1983 (PDF). ITSCJ/IPSJ. ISO-IR-77.
- ^ ECMA/TC 1 (1979). "Brief History". Additional Control Functions for Character-Imaging I/O Devices (PDF) (2nd ed.). ECMA. ECMA-48:1979.
- ^ a b ECMA/TC 1 (1985). "5.3.8: Sets of 96 graphic characters". Code Extension Techniques (PDF) (4th ed.). ECMA. pp. 17–18. ECMA-35:1985.
- ^ ECMA/TC 1 (1985). "5.2.1: Use of locking-shift functions". Code Extension Techniques (PDF) (4th ed.). ECMA. pp. 9–10. ECMA-35:1985.
- ^ ISO/IEC JTC 1/SC 2/WG 3 (1998-02-12). Final Text of DIS 8859-1, 8-bit single-byte coded graphic character sets—Part 1: Latin alphabet No.1 (PDF). ISO/IEC FDIS 8859-1:1998; JTC1/SC2/N2988; WG3/N411.
This set of coded graphic characters may be regarded as a version of an 8-bit code according to ISO/IEC 2022 or ISO/IEC 4873 at level 1. […] The shaded positions in the code table correspond to bit combinations that do not represent graphic characters. Their use is outside the scope of ISO/IEC 8859; it is specified in other International Standards, for example ISO/IEC 6429.
- ^ "JIS X 02xx 符号" (in Japanese).
- ^ a b c d Ken Whistler (2015-10-05). "Why Nothing Ever Goes Away". Unicode Mailing List.
- ^ ECMA (1991). Control Functions for Coded Character Sets. Standard ECMA-48.
- ^ Lunde, Ken (2008). CJKV Information Processing: Chinese, Japanese, Korean, and Vietnamese Computing. O'Reilly. p. 244. ISBN 9780596800925.
- ^ Moy, Edward; Gildea, Stephen; Dickey, Thomas. "Device-Control functions". XTerm Control Sequences.
- ^ a b c d e "Code Table Extended Latin (ANSEL)". MARC 21 Specifications for Record Structure, Character Sets, and Exchange Media. Library of Congress. 2007-12-05.
- ^ Moy, Edward; Gildea, Stephen; Dickey, Thomas. "Operating System Commands". XTerm Control Sequences.
- ^ Frank da Cruz; Christine Gianone (1997). Using C-Kermit. Digital Press. p. 278. ISBN 978-1-55558-164-0.
- ^ "Information processing; bibliographic control characters". Beuth: publishing DIN. DIN 31626:1978-12.
- ^ a b c d e ISO/TC 46 (1983-06-01). Additional Control Codes for Bibliographic Use according to International Standard ISO 6630 (PDF). ITSCJ/IPSJ. ISO-IR-67.
- ^ a b c d e ISO/TC 46 (1986-02-01). Additional Control Codes for Bibliographic Use according to International Standard ISO 6630 (PDF). ITSCJ/IPSJ. ISO-IR-124.
- ^ "DIN ISO 6630 December 1997". AFNOR Editions Online Store.
- ^ a b Umamaheswaran, V.S. (1999-11-08). "3.3 Step 2: Byte Conversion". UTF-EBCDIC. Unicode Consortium. Unicode Technical Report #16.
The 64 control characters […], the ASCII DELETE character (U+007F)[…] are mapped respecting EBCDIC conventions, as defined in IBM Character Data Representation Architecture, CDRA, with one exception -- the pairing of EBCDIC Line Feed and New Line control characters are swapped from their CDRA default pairings to ISO/IEC 6429 Line Feed (U+000A) and Next Line (U+0085) control characters
- ^ Steele, Shawn (1996-04-24). cp037_IBMUSCanada to Unicode table. Microsoft/Unicode Consortium.
- The Unicode Standard
- C0 Controls and Basic Latin
- C1 Controls and Latin-1 Supplement
- Control Pictures
- The Unicode Standard, Version 6.1.0, Chapter 16: Special Areas and Format Characters
- ATIS Telecom Glossary 2007
- De litteris regentibus C1 quaestiones septem or Are C1 characters legal in XHTML 1.0?
- W3C I18N FAQ: HTML, XHTML, XML and Control Codes
- International register of coded character sets to be used with escape sequences