Los códigos de control o conjuntos de caracteres de control C0 y C1 definen códigos de control para su uso en texto por parte de 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 están en el rango 00 HEX – 1F HEX y el conjunto C0 predeterminado se definió originalmente en ISO 646 ( ASCII ). Los códigos C1 están en el 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 especificación de caracteres gráficos y de control permite que otros conjuntos C0 y C1 estén disponibles para aplicaciones especializadas, pero rara vez se utilizan.
ASCII define 32 caracteres de control, más un carácter extra necesario para el carácter DEL, 7F HEX o 01111111 BIN (necesario para perforar todos los agujeros en una cinta de papel y borrarla).
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 estados en la terminal, lo que era muy difícil con la electrónica y los terminales mecánicos contemporáneos.
Sólo unos pocos códigos han mantenido su uso: BEL, ESC y los caracteres "efector de formato" (FE n ) BS, TAB, LF, VT, FF y CR. Otros no se utilizan o han adquirido significados diferentes, como NUL, que es el terminador de cadena de C. Algunos protocolos de transferencia de datos, como ANPA-1312 , Kermit y XMODEM, hacen un uso extensivo de SOH, STX, ETX, EOT, ACK, NAK y SYN con el fin de aproximarse a sus definiciones originales; y algunos formatos de archivo utilizan los "separadores de información" (IS n ) como el formato info de Unix [1] y el método de cadena splitlines de Python . [2]
En la norma ISO 6429:1992 (o ECMA-48:1991) se cambiaron los nombres de algunos códigos para que fueran neutrales con respecto a la dirección de escritura. Las abreviaturas utilizadas no se cambiaron, ya que la norma ya había especificado que permanecerían inalteradas cuando la norma se tradujera a otros idiomas. En esta tabla se muestran los nombres nuevos y antiguos de los controles renombrados (el nombre antiguo es el que coincide con la abreviatura).
Decimal | Hexadecimal | Abreviaturas | Nombre | Descripción | |||||
---|---|---|---|---|---|---|---|---|---|
^@ | 0 | 00 | Nulo | ␀ | Nulo | \0 | No hace nada. El código de la cinta de papel en blanco, también se utiliza para rellenar y hacer más lenta la transmisión. | ||
^A | 1 | 01 | TC 1 , SO | ␁ | Inicio del encabezado | Primer carácter del encabezado de un mensaje. [4] | |||
^B | 2 | 02 | TC2 , STX | ␂ | Inicio del texto | Termina el encabezado y comienza el texto del mensaje. | |||
^C | 3 | 03 | TC 3 , ETX | ␃ | Fin del texto | Finaliza el texto del mensaje, inicia un pie de página (hasta el siguiente carácter TC). [4] [5] | |||
^D | 4 | 04 | TC 4 , fin de curso | ␄ | Fin de la transmisión | Finaliza la transmisión de uno o más mensajes. [4] [5] Puede poner terminales en espera. [5] | |||
^E | 5 | 05 | TC 5 , ENQ, WRU [a] | ␅ | Consulta | Desencadenar una respuesta en el extremo receptor para ver si todavía está presente. | |||
^F | 6 | 06 | TC 6 , ACK | ␆ | Reconocer | Indicación de recepción exitosa de un mensaje. | |||
^G | 7 | 07 | BEL [b] | ␇ | Campana , Alerta | \a | Llamada de atención de un operador. | ||
^H | 8 | 08 | FE 0 , BS | ␈ | Retroceso | \b | Muévete una posición hacia la izquierda. El siguiente carácter puede sobreimprimirse o reemplazar el carácter que estaba allí. | ||
^yo | 9 | 09 | FE 1 , HT | ␉ | Tabulación de caracteres, tabulación horizontal | \t | Moverse a la derecha a la siguiente tabulación . | ||
^J | 10 | 0A | FE 2 , LF | ␊ | Avance de línea | \norte | Bajar a la misma posición en la siguiente línea (algunos dispositivos también se mueven a la columna izquierda). | ||
^K | 11 | 0B | FE 3 , Vermont | ␋ | Tabulación de líneas, Tabulación vertical | \v | Bajar a la siguiente tabulación vertical. | ||
^L | 12 | 0 °C | FE 4 , FF | ␌ | Feed de formulario | \F | Desplácese hasta la parte superior de la página siguiente. | ||
^M | 13 | 0D | FE 5 , CR | ␍ | Retorno de carro | \r | Moverse a la columna cero mientras permanece en la misma línea. | ||
^N | 14 | 0E | ASI QUE, LS 0 [c] | ␎ | Cambiar de lugar | Cambiar a un conjunto de caracteres alternativo. | |||
^O | 15 | 0F | SI, LS 1 [c] | ␏ | Cambio de entrada | Regresar al conjunto de caracteres normal después de SO. | |||
^P | 16 | 10 | TC 7 , CC 0 , [d] DLE | ␐ | Escape de enlace de datos | Provocar que un número limitado de caracteres que siguen uno a otro se interpreten de alguna manera diferente. [14] [15] | |||
^Q | 17 | 11 | DC 1 , XON | ␑ | Control de dispositivo uno | Enciende (DC 1 y DC 2 ) o apaga (DC 3 y DC 4 ) dispositivos. Teletype [6] los utilizó para el lector de cinta de papel y la perforadora de cinta de papel. El primer uso se convirtió en el estándar de facto para el control de flujo de software . [16] | |||
^R | 18 | 12 | DC 2 , CINTA | ␒ | Control de dispositivo dos | ||||
^S | 19 | 13 | DC 3 , DESACTIVADO | ␓ | Control de dispositivo tres | ||||
^T | 20 | 14 | DC 4 , | ␔ | Control de dispositivo cuatro | ||||
^Tú | 21 | 15 | TC 8 , no disponible | ␕ | Reconocimiento negativo | Respuesta negativa a un remitente, como un error detectado. | |||
^V | 22 | 16 | TC 9 , SIN | ␖ | Ralentí sincrónico | Se envía en sistemas de transmisión sincrónica cuando no se transmite ningún otro carácter. | |||
^W | 23 | 17 | TC 10 , ETB | ␗ | Fin del bloque de transmisión | Fin de un bloque de transmisión de datos cuando los datos se dividen en dichos bloques para fines de transmisión. | |||
^X | 24 | 18 | PODER | ␘ | Cancelar | Indica que los datos que lo preceden son erróneos o deben ignorarse. | |||
^Y | 25 | 19 | En | ␙ | Fin del medio | Indica en papel o cintas magnéticas que se ha llegado al final de la porción utilizable de la cinta. [3] | |||
^Z | 26 | 1A | SUB | ␚ | Sustituto | Reemplaza un carácter que se consideró inválido o erróneo . Debe ignorarse. | |||
^[ | 27 | 1B | ESC | ␛ | Escapar | \e [e] | Modifica el significado de una cantidad limitada de bytes siguientes. En la actualidad, esto casi siempre se utiliza para introducir una secuencia de escape ANSI . | ||
^\ | 28 | 1C | ES 4 , FS | ␜ | Separador de archivos | Se pueden utilizar como delimitadores para marcar campos de estructuras de datos. US es el nivel más bajo, mientras que RS, GS y FS son de nivel creciente para dividir grupos formados por elementos del nivel inferior. SP (espacio) podría considerarse un nivel aún más bajo. | |||
^] | 29 | 1D | ES 3 , GS | ␝ | Separador de grupo | ||||
^^ | 30 | 1E | ES 2 , RS | ␞ | Separador de registros | ||||
^_ | 31 | 1ºF | IS 1 , Estados Unidos | ␟ | Separador de unidades | ||||
Si bien técnicamente no forman parte de la gama de caracteres de control C0, se puede pensar que los dos caracteres siguientes tienen algunas características de los caracteres de control. | |||||||||
32 | 20 | ES | ␠ | Espacio | Mover una posición de carácter a la derecha. | ||||
^? | 127 | 7F | DEL | ␡ | Borrar | Se debe ignorar. Se utiliza para eliminar caracteres en cintas perforadas perforando todos los orificios. |
En 1973, ECMA-35 e ISO 2022 [17] intentaron definir un método para que un código "ASCII extendido" de 8 bits pudiera convertirse en un código de 7 bits correspondiente, y viceversa . [18] En un entorno de 7 bits, el Shift Out ( SO ) cambiaría el significado de los 96 bytes 0x20 a 0x7F [a] [20] (es decir, todos menos los códigos de control C0), para que sean los caracteres que un entorno de 8 bits imprimiría si usara el mismo código con el bit alto establecido. Esto significaba que el rango 0x80 a 0x9F no podía imprimirse en un entorno de 7 bits, [18] por lo que se decidió que ningún conjunto de caracteres alternativo podría usarlos, y que estos códigos deberían ser códigos de control adicionales, que se conocen como los códigos de control C1 . Para permitir que un entorno de 7 bits usara estos nuevos controles, las secuencias a se considerarían equivalentes. [18] Las normas ISO 8859 posteriores abandonaron el soporte para códigos de 7 bits, pero conservaron este rango de caracteres de control.ESC @
ESC _
El primer conjunto de códigos de control C1 que se registró para su uso con la norma ISO 2022 fue el DIN 31626 , [21] un conjunto especializado para uso bibliográfico que se registró en 1979. [22]
El conjunto de normas ISO/IEC 6429 de uso general más común se registró en 1983, [23] aunque la especificación ECMA-48 en la que se basaba se había publicado por primera vez en 1976 [24] y JIS X 0211 (anteriormente JIS C 6323). [25] También se utilizan los nombres simbólicos definidos por RFC 1345 y los primeros borradores de ISO 10646, pero no en ISO/IEC 6429 ( PAD , HOP y SGC ). [8] [26]
A excepción de SS2 y SS3 en texto EUC-JP , y NEL en texto transcodificado desde EBCDIC , las formas de 8 bits de estos códigos casi nunca se usaron. CSI , DCS y OSC se utilizan para controlar terminales de texto y emuladores de terminal , pero casi siempre mediante el uso de sus representaciones de código de escape de 7 bits. Hoy en día, si se encuentran estos códigos, es mucho más probable que estén destinados a imprimir caracteres desde esa posición de Windows-1252 o Mac OS Roman .
ESC+ | Decimal | Maleficio | Abr. | Nombre | Descripción [27] |
---|---|---|---|---|---|
@ | 128 | 80 | Almohadilla [9] | Carácter de relleno [b] | Propuesto como un "relleno" o "byte alto" para caracteres de un solo byte para hacerlos de dos bytes de longitud para una interoperabilidad más fácil con caracteres de múltiples bytes . El Código Unix Extendido (EUC) lo utiliza ocasionalmente. [31] |
A | 129 | 81 | SALTO [9] | Preajuste de octeto alto [b] | Se propuso establecer el byte alto de una secuencia de caracteres de múltiples bytes para que solo necesiten un byte cada uno, como una forma simple de compresión de datos. |
B | 130 | 82 | Hiperplasia prostática benigna (HPB) | Se permite un descanso aquí [c] | Sigue a un carácter gráfico en el que se permite un salto de línea. Equivale aproximadamente a un guion suave o un espacio de ancho cero, excepto que no define lo que se imprime en el salto de línea. |
do | 131 | 83 | Nueva BAHÍA | No hay descanso aquí [c] | Sigue el carácter gráfico que no debe romperse. Véase también " unidor de palabras" . |
D | 132 | 84 | INDIANA | Índice [d] | Bajar una línea sin moverse horizontalmente, para eliminar la ambigüedad sobre el significado de LF. |
mi | 133 | 85 | No | Siguiente linea | Equivalente a CR+LF, para que coincida con el carácter de control EBCDIC . |
F | 134 | 86 | SSA | Inicio del área seleccionada | Utilizado por terminales orientadas a bloques . En xterm ESC F se mueve a la esquina inferior izquierda de la pantalla, ya que cierto software asume este comportamiento. [34] |
GRAMO | 135 | 87 | ESA | Fin del área seleccionada | |
yo | 136 | 88 | Altos niveles |
| Establezca una tabulación en la posición actual. |
I | 137 | 89 | HTJ |
| Justifica a la derecha el texto desde la última tabulación hasta la siguiente tabulación. |
Yo | 138 | 8A | VTS |
| Establecer una tabulación vertical. |
K | 139 | 8B | Partido Liberal Democrático |
| Para producir subíndices y superíndices en ISO/IEC 6429. Los subíndices utilizan mientras que los superíndices utilizan . PLD text PLU PLU text PLD |
yo | 140 | 8C | Más |
| |
METRO | 141 | 8D | Rhode Island |
| Subir una línea. |
norte | 142 | 8E | SS2 | Turno único 2 | El siguiente personaje es de los conjuntos G2 o G3, respectivamente. |
Oh | 143 | 8F | SS3 | Turno único 3 | |
PAG | 144 | 90 | Estado Civil | Cadena de control del dispositivo | Seguido de una cadena de caracteres imprimibles (0x20 a 0x7E) y efectores de formato (0x08 a 0x0D), finalizados por ST (0x9C). Xterm definió varios de ellos. [35] |
Q | 145 | 91 | PU1 | Uso Privado 1 | Reservado para función privada acordada entre el remitente y el destinatario de los datos. |
R | 146 | 92 | PU2 | Uso Privado 2 | |
S | 147 | 93 | Sistema de transmisión de señales (STS) | Establecer estado de transmisión | |
yo | 148 | 94 | CCH | Cancelar personaje | Retroceso destructivo, para eliminar la ambigüedad sobre el significado de BS . |
tú | 149 | 95 | hombre | Mensaje en espera | |
V | 150 | 96 | SPA | Inicio del Área Protegida | Utilizado por terminales orientadas a bloques . |
Yo | 151 | 97 | Agencia de Protección Ambiental | Fin del Área Protegida | |
incógnita | 152 | 98 | LLAMADA DE SOCORRO | Inicio de cadena [c] | Seguido de una cadena de control terminada en ST (0x9C) que (a diferencia de DCS , OSC , PM o APC ) puede contener cualquier carácter excepto SOS o ST. |
Y | 153 | 99 | SGC, [9] SGCI [36] | Introductor de un solo carácter gráfico [b] | Su objetivo es permitir la impresión de un carácter Unicode arbitrario ; sería seguido por ese carácter, probablemente codificado en UTF-1 . [36] |
O | 154 | 9A | LECTURA MENTAL | Introductor de un solo personaje [c] | Debe ir seguido de un único carácter imprimible (0x20 a 0x7E) o un efector de formato (0x08 a 0x0D), y debe imprimirse como ASCII sin importar qué conjuntos gráficos o de control estuvieran en uso. |
[ | 155 | 9B | CSI | Introductor de secuencia de control | Se utiliza para introducir secuencias de control que toman parámetros. Se utiliza para secuencias de escape ANSI . |
\ | 156 | 9C | CALLE | Terminador de cadena | Termina una cadena iniciada por DCS , SOS , OSC , PM o APC . |
] | 157 | 9D | CSC | Comando del sistema operativo | Seguido de una cadena de caracteres imprimibles (0x20 a 0x7E) y efectores de formato (0x08 a 0x0D), terminado por ST (0x9C), destinado a usarse para permitir la señalización en banda de información de protocolo, pero rara vez se usa para ese propósito. Algunos emuladores de terminal , incluido xterm , utilizan secuencias OSC para configurar el título de la ventana y cambiar la paleta de colores. También pueden admitir la finalización de una secuencia OSC con BEL en lugar de ST. [37] Kermit utilizó APC para transmitir comandos. [38] |
^ | 158 | 9E | P.M | Mensaje de privacidad | |
_ | 159 | 9F | Vehículo blindado | Comando del programa de aplicación |
El mecanismo de extensión ISO/IEC 2022 (ECMA-35) permitió que las secuencias de escape cambiaran los conjuntos C0 y C1. El conjunto de caracteres de control C0 estándar que se muestra arriba se elige con la secuencia ESC ! @
y el conjunto C1 anterior se elige con la secuencia ESC " C
. [23]
Se han definido varias alternativas oficiales y no oficiales, pero esta es bastante obsoleta. La mayoría se vieron obligadas a mantener una buena parte de la compatibilidad con los controles ASCII para lograr la interoperabilidad. El estándar convierte a ESC, [39] [40] SP y DEL [a] en caracteres codificados "fijos", que están disponibles en sus ubicaciones ASCII en todas las codificaciones que cumplen con el estándar. [42] También especifica que si un conjunto C0 incluye códigos de control de transmisión (TC n ), deben codificarse en sus ubicaciones ASCII [39] y no pueden colocarse en un conjunto C1, [43] y cualquier nuevo control de transmisión debe estar en un conjunto C1. [39]
Unicode reserva los 65 puntos de código descritos anteriormente para la compatibilidad con los códigos de control C0 y C1, otorgándoles la categoría general Cc
(control). Son los siguientes:
Unicode sólo especifica la semántica para los controles de formato C0 HT, LF, VT, FF y CR (nótese que falta BS); los separadores de información C0 FS, GS, RS, US (y SP); y el control C1 NEL. [54] El resto de los códigos son transparentes para Unicode y sus significados se dejan a los protocolos de nivel superior, sugiriendo ISO/IEC 6429 como predeterminado. [54]
Unicode incluye muchos otros caracteres efectores de formato además de estos, como marcas, incrustaciones, aislamientos y pops para formato bidireccional explícito, y el conector de ancho cero y el no conector para controlar el uso de ligaduras. Sin embargo, se les asigna la categoría general Cf
(formato) en lugar de Cc
.
{{citation}}
: CS1 maint: nombres numéricos: lista de autores ( enlace ){{citation}}
: CS1 maint: nombres numéricos: lista de autores ( enlace ){{citation}}
: CS1 maint: nombres numéricos: lista de autores ( enlace ){{citation}}
: CS1 maint: nombres numéricos: lista de autores ( enlace ){{citation}}
: CS1 maint: nombres numéricos: lista de autores ( enlace ){{citation}}
: CS1 maint: nombres numéricos: lista de autores ( enlace ){{citation}}
: CS1 maint: nombres numéricos: lista de autores ( enlace ){{cite book}}
: CS1 maint: nombres numéricos: lista de autores ( enlace ){{cite book}}
: CS1 maint: nombres numéricos: lista de autores ( enlace ){{cite book}}
: CS1 maint: nombres numéricos: lista de autores ( enlace ){{citation}}
: CS1 maint: nombres numéricos: lista de autores ( enlace ){{citation}}
: CS1 maint: nombres numéricos: lista de autores ( enlace ){{citation}}
: CS1 maint: nombres numéricos: lista de autores ( enlace ){{cite web}}
: CS1 maint: nombres numéricos: lista de autores ( enlace ){{citation}}
: CS1 maint: nombres numéricos: lista de autores ( enlace ){{citation}}
: CS1 maint: nombres numéricos: lista de autores ( enlace ){{citation}}
: CS1 maint: nombres numéricos: lista de autores ( enlace )Los 64 caracteres de control […], el carácter ASCII DELETE (U+007F) […] se asignan respetando las convenciones EBCDIC, tal como se define en IBM Character Data Representation Architecture, CDRA, con una excepción: el emparejamiento de los caracteres de control de avance de línea y nueva línea EBCDIC se intercambia de sus emparejamientos predeterminados de CDRA a los caracteres de control de avance de línea (U+000A) y siguiente línea (U+0085) ISO/IEC 6429