ASCII ( / æ s k i / ( escuchar ) CULO -kee ), [3] : 6 abreviada del Código Estándar Americano para Intercambio de Información , es una codificación de caracteres estándar para la comunicación electrónica. Los códigos ASCII representan texto en computadoras, equipos de telecomunicaciones y otros dispositivos. La mayoría de los esquemas de codificación de caracteres modernos se basan en ASCII, aunque admiten muchos caracteres adicionales.
MIME / IANA | us-ascii |
---|---|
Alias | ISO-IR-006, [1] ANSI_X3.4-1968, ANSI_X3.4-1986, ISO_646.irv: 1991, ISO646-US, EE. UU., IBM367, cp367 [2] |
Idioma (s) | inglés |
Clasificación | Serie ISO 646 |
Extensiones |
|
Precedido por | ITA 2 , FIELDATA |
Sucesor | ISO 8859 , Unicode |
La Autoridad de Números Asignados de Internet (IANA) prefiere el nombre US-ASCII para esta codificación de caracteres. [2]
ASCII es uno de los hitos de IEEE .
Descripción general
ASCII se desarrolló a partir del código telegráfico . Su primer uso comercial fue como código de teletipo de siete bits promovido por los servicios de datos de Bell. El trabajo en el estándar ASCII comenzó en mayo de 1961, con la primera reunión del subcomité X3.2 de la Asociación Estadounidense de Estándares (ASA) (ahora Instituto Nacional Estadounidense de Estándares o ANSI). La primera edición de la norma se publicó en 1963, [4] [5] se sometió a una revisión importante durante 1967, [6] [7] y experimentó su actualización más reciente durante 1986. [8] En comparación con los códigos telegráficos anteriores, el propuesto Tanto el código de campana como el ASCII se ordenaron para una clasificación más conveniente (es decir, la alfabetización) de las listas y se agregaron funciones para dispositivos distintos de los teleimpresores. [ cita requerida ]
El uso del formato ASCII para el intercambio de redes se describió en 1969. [9] Ese documento se elevó formalmente a Estándar de Internet en 2015. [10]
Originalmente basado en el alfabeto inglés , ASCII codifica 128 caracteres especificados en enteros de siete bits como se muestra en la tabla ASCII anterior. [11] El noventa y cinco de los caracteres codificados son imprimible: estos incluyen los dígitos 0 a 9 , las letras minúsculas a a z , mayúsculas letras A a Z , y los símbolos de puntuación . Además, la especificación ASCII original incluía 33 códigos de control de no impresión que se originaron con máquinas de teletipo ; la mayoría de estos son ahora obsoletos, [12] aunque algunos todavía se usan comúnmente, como el retorno de carro , el salto de línea y los códigos de tabulación .
Por ejemplo, la i minúscula estaría representada en la codificación ASCII por el binario 1101001 = hexadecimal 69 ( i es la novena letra) = decimal 105.
Historia
El Código Estándar Estadounidense para el Intercambio de Información (ASCII) fue desarrollado bajo los auspicios de un comité de la Asociación Estadounidense de Estándares (ASA), llamado comité X3, por su subcomité X3.2 (más tarde X3L2), y más tarde por el X3 de ese subcomité. 2.4 grupo de trabajo (ahora INCITS ). La ASA se convirtió en el Instituto de Normas de los Estados Unidos de América (USASI) [3] : 211 y, en última instancia, en el Instituto Nacional de Normas de los Estados Unidos (ANSI).
Con los demás caracteres especiales y códigos de control completados, ASCII se publicó como ASA X3.4-1963, [5] [13] dejando 28 posiciones de código sin ningún significado asignado, reservadas para estandarización futura y un código de control sin asignar. [3] : 66, 245 Hubo cierto debate en ese momento sobre si debería haber más caracteres de control en lugar del alfabeto en minúsculas. [3] : 435 La indecisión no duró mucho: en mayo de 1963, el Grupo de Trabajo del CCITT sobre el Nuevo Alfabeto Telegráfico propuso asignar caracteres en minúscula a los palos [a] [14] 6 y 7, [15] y la Organización Internacional de Normalización TC 97 SC 2 votó durante octubre para incorporar el cambio en su borrador de norma. [16] El grupo de trabajo X3.2.4 votó su aprobación para el cambio a ASCII en su reunión de mayo de 1963. [17] La ubicación de las letras minúsculas en las barras [a] [14] 6 y 7 provocó que los caracteres difirieran en el patrón de bits de las mayúsculas en un solo bit, lo que simplificó la coincidencia de caracteres sin distinción entre mayúsculas y minúsculas y la construcción de teclados e impresoras.
El comité X3 hizo otros cambios, incluidos otros caracteres nuevos (la llave y los caracteres de la barra vertical ), [18] renombrando algunos caracteres de control (SOM se convirtió en el inicio del encabezado (SOH)) y moviendo o quitando otros (RU fue eliminado). [3] : 247–248 ASCII se actualizó posteriormente como USAS X3.4-1967, [6] [19] luego USAS X3.4-1968, ANSI X3.4-1977 y, finalmente, ANSI X3.4-1986. [8] [20]
Revisiones del estándar ASCII:
- ASA X3.4-1963 [3] [5] [19] [20]
- ASA X3.4-1965 (aprobado, pero no publicado, sin embargo utilizado por las estaciones de pantalla IBM 2260 y 2265 y el control de pantalla IBM 2848 ) [3] : 423, 425–428, 435–439 [21] [19] [20]
- USAS X3.4-1967 [3] [6] [20]
- USAS X3.4-1968 [3] [20]
- ANSI X3.4-1977 [20]
- ANSI X3.4-1986 [8] [20]
- ANSI X3.4-1986 (R1992)
- ANSI X3.4-1986 (R1997)
- INCITOS ANSI 4-1986 (R2002) [22]
- INCITOS ANSI 4-1986 (R2007) [23]
- (ANSI) INCITS 4-1986 [R2012] [24]
- (ANSI) INCITS 4-1986 [R2017] [25]
En el estándar X3.15, el comité X3 también abordó cómo se debe transmitir ASCII (el bit menos significativo primero), [3] : 249-253 [26] y cómo se debe grabar en cinta perforada. Propusieron un estándar de 9 pistas para cinta magnética e intentaron lidiar con algunos formatos de tarjetas perforadas .
Consideraciones de diseño
Ancho de bits
El subcomité X3.2 diseñó ASCII basándose en los sistemas de codificación de teleimpresores anteriores. Como otras codificaciones de caracteres , ASCII especifica una correspondencia entre patrones de bits digitales y símbolos de caracteres (es decir, grafemas y caracteres de control ). Esto permite que los dispositivos digitales se comuniquen entre sí y procesen, almacenen y comuniquen información orientada a los caracteres, como el lenguaje escrito. Antes de que se desarrollara ASCII, las codificaciones en uso incluían 26 caracteres alfabéticos , 10 dígitos numéricos y de 11 a 25 símbolos gráficos especiales. Para incluir todos estos, y caracteres de control compatibles con el Comité Consultatif International Téléphonique et Télégraphique (CCITT) International Telegraph Alphabet No. 2 (ITA2) estándar de 1924, [27] [28] FIELDATA (1956 [ cita requerida ] ), y principios EBCDIC (1963), se requirieron más de 64 códigos para ASCII.
ITA2, a su vez, se basó en el código telegráfico de 5 bits que Émile Baudot inventó en 1870 y patentó en 1874. [28]
El comité debatió la posibilidad de una función de desplazamiento (como en ITA2 ), que permitiría representar más de 64 códigos mediante un código de seis bits . En un código desplazado, algunos códigos de caracteres determinan las opciones entre las opciones para los siguientes códigos de caracteres. Permite una codificación compacta, pero es menos confiable para la transmisión de datos , ya que un error en la transmisión del código de cambio generalmente hace que una gran parte de la transmisión sea ilegible. El comité de estándares decidió no cambiar, por lo que ASCII requería al menos un código de siete bits. [3] : 215, 236 §4
El comité consideró un código de ocho bits, ya que ocho bits ( octetos ) permitirían que dos patrones de cuatro bits codificaran eficientemente dos dígitos con decimal codificado en binario . Sin embargo, requeriría que toda la transmisión de datos envíe ocho bits cuando siete podrían ser suficientes. El comité votó a favor de utilizar un código de siete bits para minimizar los costos asociados con la transmisión de datos. Dado que la cinta perforada en ese momento podía grabar ocho bits en una posición, también permitía un bit de paridad para la verificación de errores si se deseaba. [3] : 217, 236 §5 Las máquinas de ocho bits (con octetos como tipo de datos nativos) que no usaban la verificación de paridad, por lo general, establecen el octavo bit en 0. [29]
Organización interna
El código en sí estaba estructurado para que la mayoría de los códigos de control estuvieran juntos y todos los códigos gráficos estuvieran juntos, para facilitar la identificación. Los dos primeros sticks ASCII [a] [14] (32 posiciones) se reservaron para caracteres de control. [3] : 220, 236 8,9) El carácter de "espacio" tenía que ir antes de los gráficos para facilitar la clasificación , por lo que se convirtió en la posición 20 hex ; [3] : 237 §10 por la misma razón, muchos signos especiales comúnmente utilizados como separadores se colocaron antes de los dígitos. El comité decidió que era importante admitir alfabetos de 64 caracteres en mayúsculas y eligió un patrón ASCII para que pudiera reducirse fácilmente a un conjunto de códigos gráficos utilizables de 64 caracteres, [3] : 228, 237 §14 como se hizo en el Código DEC SIXBIT (1963). Por lo tanto, las letras minúsculas no se intercalaron con mayúsculas. Para mantener las opciones disponibles para letras minúsculas y otros gráficos, los códigos especiales y numéricos se colocaron antes de las letras, y la letra A se colocó en la posición 41 hexadecimal para que coincida con el borrador del estándar británico correspondiente. [3] : 238 §18 Los dígitos 0–9 tienen el prefijo 011, pero los 4 bits restantes corresponden a sus respectivos valores en binario, lo que hace que la conversión con decimal codificado en binario sea sencilla.
Muchos de los caracteres no alfanuméricos se colocaron para corresponder a su posición cambiada en las máquinas de escribir; una sutileza importante es que se basaron en máquinas de escribir mecánicas , no en máquinas de escribir eléctricas . [30] Las máquinas de escribir mecánicas siguieron el estándar establecido por Remington No. 2 (1878), la primera máquina de escribir con una tecla de mayúsculas, y los valores cambiados de 23456789-
fueron "#$%_&'()
: las primeras máquinas de escribir omitieron 0 y 1 , usando O (letra mayúscula o ) y l (letra L minúscula ) en su lugar, pero los pares 1!
y se 0)
convirtieron en estándar una vez que 0 y 1 se volvieron comunes. Así, en ASCII !"#$%
se colocaron en el segundo palo, [a] [14] posiciones 1-5, correspondientes a los dígitos 1-5 en el palo adyacente. [a] [14] Sin embargo, los paréntesis no pueden corresponder a 9 y 0 , porque el espacio correspondiente a 0 lo ocupa el carácter de espacio. Esto se resolvió quitando _
(subrayado) de 6 y cambiando los caracteres restantes, que correspondían a muchas máquinas de escribir europeas que colocaban los paréntesis con 8 y 9 . Esta discrepancia con las máquinas de escribir condujo a teclados de pares de bits , en particular el Teletype Model 33 , que usaba el diseño desplazado a la izquierda correspondiente a ASCII, no a las máquinas de escribir mecánicas tradicionales. Las máquinas de escribir eléctricas, en particular la IBM Selectric (1961), utilizaron un diseño algo diferente que se ha convertido en estándar en las computadoras, siguiendo la IBM PC (1981), especialmente el Modelo M (1984), y por lo tanto, los valores de desplazamiento de los símbolos en los teclados modernos no se corresponden. tan cerca de la tabla ASCII como lo hacían los teclados anteriores. El /?
par también data del n. ° 2, y los ,< .>
pares se usaron en algunos teclados (otros, incluido el n. ° 2, no cambiaron ,
(coma) o .
(punto) para que pudieran usarse en mayúsculas sin desviarse). Sin embargo, ASCII dividió el ;:
par (que data del No. 2) y reorganizó los símbolos matemáticos (convenciones variadas, comúnmente -* =+
) a :* ;+ -=
.
Algunos caracteres comunes no se incluyeron, en particular ½¼¢
, mientras que ^`~
se incluyeron como signos diacríticos para uso internacional y <>
para uso matemático, junto con los caracteres de línea simple \|
(además de los comunes /
). El símbolo @ no se usó en Europa continental y el comité esperaba que fuera reemplazado por una À acentuada en la variación francesa, por lo que la @ se colocó en la posición 40 hex , justo antes de la letra A. [3] : 243
Los códigos de control que se consideraron esenciales para la transmisión de datos fueron el inicio del mensaje (SOM), el fin de la dirección (EOA), el fin del mensaje (EOM), el fin de la transmisión (EOT), "¿quién es usted?" (WRU), "¿lo eres?" (RU), un control de dispositivo reservado (DC0), inactivo sincrónico (SYNC) y reconocimiento (ACK). Estos se colocaron para maximizar la distancia de Hamming entre sus patrones de bits. [3] : 243–245
Orden de caracteres
El orden del código ASCII también se denomina orden ASCIIbético . [31] de intercalación de los datos se hace a veces en este orden en lugar de (orden alfabético "estándar" secuencia de clasificación ). Las principales desviaciones en el orden ASCII son:
- Todas las mayúsculas van antes de las minúsculas; por ejemplo, "Z" precede a "a"
- Los dígitos y muchos signos de puntuación se anteponen a las letras.
Un orden intermedio convierte las letras mayúsculas a minúsculas antes de comparar los valores ASCII.
Grupos de personajes
Personajes de control
ASCII reserva los primeros 32 códigos (números 0-31 decimal) para caracteres de control : códigos originalmente destinados a no representar información imprimible, sino a dispositivos de control (como impresoras ) que utilizan ASCII, o para proporcionar metainformación sobre datos corrientes como las almacenadas en cinta magnética.
Por ejemplo, el carácter 10 representa la función de "avance de línea" (que hace que una impresora avance su papel) y el carácter 8 representa "retroceso". RFC 2822 se refiere a caracteres de control que no incluyen retorno de carro, salto de línea o espacio en blanco como caracteres de control que no son espacios en blanco. [32] Excepto por los caracteres de control que prescriben el formato elemental orientado a líneas, ASCII no define ningún mecanismo para describir la estructura o apariencia del texto dentro de un documento. Otros esquemas, como lenguajes de marcado , página de direcciones y diseño y formato de documentos.
El estándar ASCII original usaba solo frases descriptivas breves para cada carácter de control. La ambigüedad que esto causó fue a veces intencional, por ejemplo, cuando un carácter se usaría de manera ligeramente diferente en un enlace de terminal que en un flujo de datos , y a veces accidental, por ejemplo, con el significado de "eliminar".
Probablemente el dispositivo individual más influyente en la interpretación de estos caracteres fue el Teletype Model 33 ASR, que era un terminal de impresión con una opción de perforadora / lector de cinta de papel disponible . La cinta de papel fue un medio muy popular para el almacenamiento de programas a largo plazo hasta la década de 1980, menos costoso y, en cierto modo, menos frágil que la cinta magnética. En particular, las asignaciones de máquina del modelo 33 de teletipo para los códigos 17 (Control-Q, DC1, también conocido como XON), 19 (Control-S, DC3, también conocido como XOFF) y 127 ( Delete ) se convirtieron en estándares de facto. El Modelo 33 también se destacó por tomar la descripción de Control-G (código 7, BEL, que significa alertar audiblemente al operador) literalmente, ya que la unidad contenía una campana real que sonó cuando recibió un carácter BEL. Debido a que la parte superior de la tecla O también mostraba un símbolo de flecha izquierda (de ASCII-1963, que tenía este carácter en lugar de un guión bajo ), un uso no conforme del código 15 (Control-O, Shift In) interpretado como "eliminar el carácter anterior" también fue adoptado por muchos de los primeros sistemas de tiempo compartido, pero finalmente se descuidó.
Cuando un ASR teletipo 33 equipado con el lector de cinta de papel automático recibió un Control-S (XOFF, una abreviatura de transmisión desactivada), hizo que el lector de cinta se detuviera; recibir Control-Q (XON, "transmitir en") hizo que el lector de cinta se reanudara. Esta técnica fue adoptada por varios de los primeros sistemas operativos informáticos como una señal de "apretón de manos" que advertía al remitente que detuviera la transmisión debido a un desbordamiento inminente; persiste hasta el día de hoy en muchos sistemas como una técnica de control de salida manual. En algunos sistemas, Control-S conserva su significado, pero Control-Q se reemplaza por un segundo Control-S para reanudar la salida. El 33 ASR también podría configurarse para emplear Control-R (DC2) y Control-T (DC4) para iniciar y detener la perforación de la cinta; en algunas unidades equipadas con esta función, las letras de los caracteres de control correspondientes en la tecla sobre la letra eran TAPE y TAPE respectivamente. [33]
Eliminar y retroceso
El teletipo no podía mover la cabeza hacia atrás, por lo que no puso una tecla en el teclado para enviar un BS (retroceso). En su lugar, había una clave marcada RUB OUTque enviaba el código 127 (DEL). El propósito de esta clave era borrar los errores en una cinta de papel mecanografiada a mano: el operador tenía que presionar un botón en el perforador de la cinta para hacer una copia de seguridad, luego escribir el borrado, que perforaba todos los agujeros y reemplazaba el error con un carácter que estaba destinado a ser ignorado. [34] Los teletipos se usaban comúnmente para las computadoras menos costosas de Digital Equipment Corporation , por lo que estos sistemas tenían que usar la clave disponible y, por lo tanto, el código DEL para borrar el carácter anterior. [35] [36] Debido a esto, los terminales de video DEC (por defecto) enviaron el código DEL para la tecla marcada como "Retroceso" mientras que la tecla marcada "Eliminar" envió una secuencia de escape, mientras que muchos otros terminales enviaron BS para la tecla de retroceso. . El controlador de terminal de Unix solo podía usar un código para borrar el carácter anterior, esto podría configurarse en BS o DEL, pero no en ambos, lo que resultó en un largo período de molestia donde los usuarios tuvieron que corregirlo dependiendo de qué terminal estaban usando (shells que permiten la edición de líneas, como ksh , bash y zsh , comprenda ambos). La suposición de que ninguna tecla envió un BS hizo que Control + H se usara para otros propósitos, como el comando de prefijo "ayuda" en GNU Emacs . [37]
Escapar
A muchos más códigos de control se les han dado significados bastante diferentes de los originales. El carácter de "escape" (ESC, código 27), por ejemplo, fue pensado originalmente para permitir el envío de otros caracteres de control como literales en lugar de invocar su significado. Este es el mismo significado de "escape" que se encuentra en codificaciones de URL, cadenas de lenguaje C y otros sistemas donde ciertos caracteres tienen un significado reservado. Con el tiempo, este significado ha sido adoptado y eventualmente cambiado. En el uso moderno, un ESC enviado a la terminal generalmente indica el inicio de una secuencia de comando generalmente en la forma de un llamado " código de escape ANSI " (o, más propiamente, un " Introductor de secuencia de control ") de ECMA-48 ( 1972) y sus sucesores, comenzando con ESC seguido de un carácter "[" (corchete izquierdo). Un ESC enviado desde el terminal se usa con mayor frecuencia como un carácter fuera de banda que se usa para terminar una operación, como en los editores de texto TECO y vi . En la interfaz gráfica de usuario (GUI) y los sistemas de ventanas , ESC generalmente hace que una aplicación anule su operación actual o salga (finalice) por completo.
Fin de la línea
La ambigüedad inherente de muchos caracteres de control, combinada con su uso histórico, creó problemas al transferir archivos de "texto sin formato" entre sistemas. El mejor ejemplo de esto es el problema de la nueva línea en varios sistemas operativos . Las máquinas de teletipo requerían que una línea de texto terminara con "Retorno de carro" (que mueve el cabezal de impresión al principio de la línea) y "Avance de línea" (que avanza el papel una línea sin mover el cabezal de impresión). El nombre "Retorno de carro" proviene del hecho de que en una máquina de escribir manual, el carro que sostiene el papel se mueve mientras que la posición donde las barras de tipo golpean la cinta permanece estacionaria. Todo el carro tuvo que ser empujado (devuelto) hacia la derecha para colocar el margen izquierdo del papel en la siguiente línea.
Los sistemas operativos DEC ( OS / 8 , RT-11 , RSX-11 , RSTS , TOPS-10 , etc.) usaban ambos caracteres para marcar el final de una línea para que el dispositivo de la consola (originalmente máquinas de teletipo ) funcionara. Cuando aparecieron los llamados "TTY de vidrio" (más tarde llamados CRT o terminales), la convención estaba tan bien establecida que la compatibilidad con versiones anteriores hizo necesario continuar la convención. Cuando Gary Kildall creó CP / M , se inspiró en algunas convenciones de interfaz de línea de comandos utilizadas en el RT-11 de DEC . Hasta la introducción de PC DOS en 1981, IBM no participó en esto porque sus sistemas operativos de los años 70 usaban EBCDIC en lugar de ASCII y estaban orientados hacia la entrada de tarjetas perforadas y la salida de impresoras de línea en las que el concepto de retorno de carro no tenía sentido. El PC DOS de IBM (también comercializado como MS-DOS por Microsoft) heredó la convención en virtud de estar vagamente basado en CP / M, [38] y Windows lo heredó de MS-DOS.
Desafortunadamente, requerir dos caracteres para marcar el final de una línea introduce una complejidad innecesaria y preguntas sobre cómo interpretar cada carácter cuando se encuentra solo. Para simplificar las cosas , los flujos de datos de texto plano , incluidos los archivos, en Multics [39] utilizaban el salto de línea (LF) solo como terminador de línea. Unix y Unix-como sistemas y Amiga sistemas, adoptaron esta convención de Multics. El sistema operativo Macintosh original , Apple DOS y ProDOS , por otro lado, usaban el retorno de carro (CR) solo como terminador de línea; sin embargo, dado que Apple reemplazó estos sistemas operativos con el sistema operativo macOS basado en Unix, ahora también usan salto de línea (LF). El Radio Shack TRS-80 también usó un CR solitario para terminar líneas.
Las computadoras conectadas a ARPANET incluían máquinas que ejecutaban sistemas operativos como TOPS-10 y TENEX que usaban terminaciones de línea CR-LF, máquinas que ejecutaban sistemas operativos como Multics que usaban terminaciones de línea LF y máquinas que ejecutaban sistemas operativos como OS / 360 que representaban líneas como un recuento de caracteres seguido de los caracteres de la línea y que usaba EBCDIC en lugar de ASCII. El protocolo Telnet definió un " Terminal virtual de red " ASCII (NVT), de modo que las conexiones entre hosts con diferentes convenciones de finalización de línea y juegos de caracteres pudieran ser compatibles mediante la transmisión de un formato de texto estándar a través de la red. Telnet usaba ASCII junto con terminaciones de línea CR-LF, y el software que usaba otras convenciones se traduciría entre las convenciones locales y NVT. [40] El protocolo de transferencia de archivos adoptó el protocolo Telnet, incluido el uso de la terminal virtual de red, para usar al transmitir comandos y transferir datos en el modo ASCII predeterminado. [41] [42] Esto añade complejidad a las implementaciones de esos protocolos, y a otros protocolos de red, como los que se utilizan para correo electrónico y la World Wide Web, en sistemas que no utilizan la convención de finalización de línea CR-LF de NVT. [43] [44]
Fin de archivo / transmisión
El monitor PDP-6, [35] y su sucesor PDP-10, TOPS-10, [36] utilizaron Control-Z (SUB) como indicación de fin de archivo para la entrada desde un terminal. Algunos sistemas operativos como CP / M rastreaban la longitud del archivo solo en unidades de bloques de disco y usaban Control-Z para marcar el final del texto real en el archivo. [45] Por estas razones, EOF, o fin de archivo , se usó coloquial y convencionalmente como un acrónimo de tres letras para Control-Z en lugar de SUBstitute. El código de fin de texto ( ETX ), también conocido como Control-C , era inapropiado por una variedad de razones, mientras que usar Z como código de control para terminar un archivo es análogo a terminar el alfabeto y sirve como una forma muy conveniente ayuda mnemotécnica . Una convención históricamente común y aún prevaleciente usa la convención de código ETX para interrumpir y detener un programa a través de un flujo de datos de entrada, generalmente desde un teclado.
En la biblioteca C y las convenciones de Unix , el carácter nulo se usa para terminar cadenas de texto ; tales cadenas terminadas en nulo se pueden conocer en abreviatura como ASCIZ o ASCIIZ, donde aquí Z significa "cero".
Tabla de códigos de control
Binario | oct | dic | Maleficio | Abreviatura | [B] | [C] | [D] | Nombre (1967) | ||
---|---|---|---|---|---|---|---|---|---|---|
1963 | 1965 | 1967 | ||||||||
000 0000 | 000 | 0 | 00 | NULO | NUL | ␀ | ^@ | \0 | Nulo | |
000 0001 | 001 | 1 | 01 | SOM | SOL | ␁ | ^A | Inicio de rumbo | ||
000 0010 | 002 | 2 | 02 | EOA | STX | ␂ | ^B | Inicio del texto | ||
000 0011 | 003 | 3 | 03 | MOE | ETX | ␃ | ^C | Fin del texto | ||
000 0100 | 004 | 4 | 04 | EOT | ␄ | ^D | Fin de transmisión | |||
000 0101 | 005 | 5 | 05 | WRU | ENQ | ␅ | ^E | Consulta | ||
000 0110 | 006 | 6 | 06 | RU | ACK | ␆ | ^F | Reconocimiento | ||
000 0111 | 007 | 7 | 07 | CAMPANA | BEL | ␇ | ^G | \a | campana | |
000 1000 | 010 | 8 | 08 | FE0 | BS | ␈ | ^H | \b | Retroceso [e] [f] | |
000 1001 | 011 | 9 | 09 | HT / SK | HT | ␉ | ^I | \t | Lengüeta horizontal [g] | |
000 1010 | 012 | 10 | 0A | LF | ␊ | ^J | \n | Linea de alimentación | ||
000 1011 | 013 | 11 | 0B | VTAB | Vermont | ␋ | ^K | \v | Ficha vertical | |
000 1100 | 014 | 12 | 0C | FF | ␌ | ^L | \f | Alimentación de formulario | ||
000 1101 | 015 | 13 | 0D | CR | ␍ | ^M | \r | Retorno de carro [h] | ||
000 1110 | 016 | 14 | 0E | ENTONCES | ␎ | ^N | Desplazar fuera | |||
000 1111 | 017 | 15 | 0F | SI | ␏ | ^O | Desplazar en | |||
001 0000 | 020 | dieciséis | 10 | DC0 | DLE | ␐ | ^P | Escape de enlace de datos | ||
001 0001 | 021 | 17 | 11 | DC1 | ␑ | ^Q | Control de dispositivo 1 (a menudo XON ) | |||
001 0010 | 022 | 18 | 12 | DC2 | ␒ | ^R | Control de dispositivo 2 | |||
001 0011 | 023 | 19 | 13 | DC3 | ␓ | ^S | Control de dispositivo 3 (a menudo XOFF ) | |||
001 0100 | 024 | 20 | 14 | DC4 | ␔ | ^T | Control de dispositivo 4 | |||
001 0101 | 025 | 21 | 15 | ERRAR | NAK | ␕ | ^U | Reconocimiento negativo | ||
001 0110 | 026 | 22 | dieciséis | SINCRONIZAR | SYN | ␖ | ^V | Inactivo sincrónico | ||
001 0111 | 027 | 23 | 17 | LEM | ETB | ␗ | ^W | Fin del bloque de transmisión | ||
001 1000 | 030 | 24 | 18 | S0 | LATA | ␘ | ^X | Cancelar | ||
001 1001 | 031 | 25 | 19 | S1 | EM | ␙ | ^Y | Fin del medio | ||
001 1010 | 032 | 26 | 1A | S2 | SS | SUB | ␚ | ^Z | Sustituir | |
001 1011 | 033 | 27 | 1B | S3 | ESC | ␛ | ^[ | \e [I] | Escape [j] | |
001 1100 | 034 | 28 | 1C | S4 | FS | ␜ | ^\ | Separador de archivos | ||
001 1101 | 035 | 29 | 1D | S5 | GS | ␝ | ^] | Separador de grupos | ||
001 1110 | 036 | 30 | 1E | S6 | RS | ␞ | ^^ [k] | Separador de registros | ||
001 1111 | 037 | 31 | 1F | S7 | nosotros | ␟ | ^_ | Separador de unidades | ||
111 1111 | 177 | 127 | 7F | DEL | ␡ | ^? | Eliminar [l] [f] |
El equipo especializado puede utilizar otras representaciones, por ejemplo, gráficos ISO 2047 o números hexadecimales .
Caracteres imprimibles
Los códigos 20 hexadecimales a 7E hexadecimal , conocidos como caracteres imprimibles, representan letras, dígitos, signos de puntuación y algunos símbolos diversos. Hay 95 caracteres imprimibles en total. [metro]
El código 20 hexadecimal , el carácter de "espacio" , denota el espacio entre palabras, como lo produce la barra espaciadora de un teclado. Dado que el carácter de espacio se considera un gráfico invisible (en lugar de un carácter de control) [3] : 223 [46] , se enumera en la tabla siguiente en lugar de en la sección anterior.
El código 7F hexadecimal corresponde al carácter de control de "eliminar" (DEL) no imprimible y, por lo tanto, se omite en este gráfico; se trata en el cuadro de la sección anterior. Las versiones anteriores de ASCII usaban la flecha hacia arriba en lugar del signo de intercalación ( hex 5E ) y la flecha izquierda en lugar del guión bajo ( hex 5F ). [5] [47]
Binario | oct | dic | Maleficio | Glifo | ||
---|---|---|---|---|---|---|
1963 | 1965 | 1967 | ||||
010 0000 | 040 | 32 | 20 | espacio | ||
010 0001 | 041 | 33 | 21 | ! | ||
010 0010 | 042 | 34 | 22 | " | ||
010 0011 | 043 | 35 | 23 | # | ||
010 0100 | 044 | 36 | 24 | PS | ||
010 0101 | 045 | 37 | 25 | % | ||
010 0110 | 046 | 38 | 26 | Y | ||
010 0111 | 047 | 39 | 27 | ' | ||
010 1000 | 050 | 40 | 28 | ( | ||
010 1001 | 051 | 41 | 29 | ) | ||
010 1010 | 052 | 42 | 2A | * | ||
010 1011 | 053 | 43 | 2B | + | ||
010 1100 | 054 | 44 | 2C | , | ||
010 1101 | 055 | 45 | 2D | - | ||
010 1110 | 056 | 46 | 2E | . | ||
010 1111 | 057 | 47 | 2F | / | ||
011 0000 | 060 | 48 | 30 | 0 | ||
011 0001 | 061 | 49 | 31 | 1 | ||
011 0010 | 062 | 50 | 32 | 2 | ||
011 0011 | 063 | 51 | 33 | 3 | ||
011 0100 | 064 | 52 | 34 | 4 | ||
011 0101 | 065 | 53 | 35 | 5 | ||
011 0110 | 066 | 54 | 36 | 6 | ||
011 0111 | 067 | 55 | 37 | 7 | ||
011 1000 | 070 | 56 | 38 | 8 | ||
011 1001 | 071 | 57 | 39 | 9 | ||
011 1010 | 072 | 58 | 3A | : | ||
011 1011 | 073 | 59 | 3B | ; | ||
011 1100 | 074 | 60 | 3C | < | ||
011 1101 | 075 | 61 | 3D | = | ||
011 1110 | 076 | 62 | 3E | > | ||
011 1111 | 077 | 63 | 3F | ? | ||
100 0000 | 100 | 64 | 40 | @ | ' | @ |
100 0001 | 101 | sesenta y cinco | 41 | A | ||
100 0010 | 102 | 66 | 42 | B | ||
100 0011 | 103 | 67 | 43 | C | ||
100 0100 | 104 | 68 | 44 | D | ||
100 0101 | 105 | 69 | 45 | mi | ||
100 0110 | 106 | 70 | 46 | F | ||
100 0111 | 107 | 71 | 47 | GRAMO | ||
100 1000 | 110 | 72 | 48 | H | ||
100 1001 | 111 | 73 | 49 | I | ||
100 1010 | 112 | 74 | 4A | J | ||
100 1011 | 113 | 75 | 4B | K | ||
100 1100 | 114 | 76 | 4C | L | ||
100 1101 | 115 | 77 | 4D | METRO | ||
100 1110 | 116 | 78 | 4E | norte | ||
100 1111 | 117 | 79 | 4F | O | ||
101 0000 | 120 | 80 | 50 | PAG | ||
101 0001 | 121 | 81 | 51 | Q | ||
101 0010 | 122 | 82 | 52 | R | ||
101 0011 | 123 | 83 | 53 | S | ||
101 0100 | 124 | 84 | 54 | T | ||
101 0101 | 125 | 85 | 55 | U | ||
101 0110 | 126 | 86 | 56 | V | ||
101 0111 | 127 | 87 | 57 | W | ||
101 1000 | 130 | 88 | 58 | X | ||
101 1001 | 131 | 89 | 59 | Y | ||
101 1010 | 132 | 90 | 5A | Z | ||
101 1011 | 133 | 91 | 5B | [ | ||
101 1100 | 134 | 92 | 5C | \ | ~ | \ |
101 1101 | 135 | 93 | 5D | ] | ||
101 1110 | 136 | 94 | 5E | ↑ | ^ | |
101 1111 | 137 | 95 | 5F | ← | _ | |
110 0000 | 140 | 96 | 60 | @ | ' | |
110 0001 | 141 | 97 | 61 | a | ||
110 0010 | 142 | 98 | 62 | B | ||
110 0011 | 143 | 99 | 63 | C | ||
110 0100 | 144 | 100 | 64 | D | ||
110 0101 | 145 | 101 | sesenta y cinco | mi | ||
110 0110 | 146 | 102 | 66 | F | ||
110 0111 | 147 | 103 | 67 | gramo | ||
110 1000 | 150 | 104 | 68 | h | ||
110 1001 | 151 | 105 | 69 | I | ||
110 1010 | 152 | 106 | 6A | j | ||
110 1011 | 153 | 107 | 6B | k | ||
110 1100 | 154 | 108 | 6C | l | ||
110 1101 | 155 | 109 | 6D | metro | ||
110 1110 | 156 | 110 | 6E | norte | ||
110 1111 | 157 | 111 | 6F | o | ||
111 0000 | 160 | 112 | 70 | pag | ||
111 0001 | 161 | 113 | 71 | q | ||
111 0010 | 162 | 114 | 72 | r | ||
111 0011 | 163 | 115 | 73 | s | ||
111 0100 | 164 | 116 | 74 | t | ||
111 0101 | 165 | 117 | 75 | tu | ||
111 0110 | 166 | 118 | 76 | v | ||
111 0111 | 167 | 119 | 77 | w | ||
111 1000 | 170 | 120 | 78 | X | ||
111 1001 | 171 | 121 | 79 | y | ||
111 1010 | 172 | 122 | 7A | z | ||
111 1011 | 173 | 123 | 7B | { | ||
111 1100 | 174 | 124 | 7C | ACK | ¬ | | |
111 1101 | 175 | 125 | 7D | } | ||
111 1110 | 176 | 126 | 7E | ESC | | | ~ |
Conjunto de caracteres
Los puntos que representaron un carácter diferente en versiones anteriores (la versión de 1963 o el borrador de 1965) se muestran en recuadros. Los puntos asignados desde la versión de 1963, pero que por lo demás no han cambiado, se muestran ligeramente sombreados en relación con los colores de las leyendas.
_0 | _1 | _2 | _3 | _4 | _5 | _6 | _7 | _8 | _9 | _A | _B | _C | _D | _MI | _F | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0_ 0 | NUL 0000 | SOH 0001 | STX 0002 | ETX 0003 | EOT 0004 | ENQ 0005 | ACK 0006 | BEL 0007 | BS 0008 | HT 0009 | LF 000A | VT 000B | FF 000C | CR 000D | SO 000E | SI 000F |
1_ 16 | DLE 0010 | DC1 0011 | DC2 0012 | DC3 0013 | DC4 0014 | NAK 0015 | SYN 0016 | ETB 0017 | PUEDE 0018 | EM 0019 | SUB 001A | ESC 001B | FS 001C | GS 001D | RS 001E | US 001F |
2_ 32 | SP 0020 | ! 0021 | " 0022 | # 0023 | $ 0024 | % 0025 | & 0026 | « 0027 | ( 0028 | ) 0029 | * 002A | + 002B | , 002C | - 002D | . 002E | / 002F |
3_ 48 | 0 0030 | 1 0031 | 2 0032 | 3 0033 | 4 0034 | 5 0035 | 6 0036 | 7 0037 | 8 0038 | 9 0039 | : 003A | ; 003B | < 003C | = 003D | > 003E | ? 003F |
4_ 64 | @ 0040 | A 0041 | B 0042 | C 0043 | D 0044 | E 0045 | F 0046 | G 0047 | H 0048 | Yo 0049 | J 004A | K 004B | L 004C | M 004D | N 004E | O 004F |
5_ 80 | P 0050 | Q 0051 | R 0052 | S 0053 | T 0054 | U 0055 | V 0056 | W 0057 | X 0058 | Y 0059 | Z 005A | [ 005B | \ 005C | ] 005D | ^ 005E | _ 005F |
6_ 96 | ` 0060 | un 0061 | b 0062 | c 0063 | d 0064 | e 0065 | f 0066 | g 0067 | h 0068 | yo 0069 | j 006A | k 006B | l 006C | m 006D | n 006E | o 006F |
7_ 112 | p 0070 | q 0071 | r 0072 | s 0073 | t 0074 | u 0075 | v 0076 | w 0077 | x 0078 | y 0079 | z 007A | { 007B | | 007C | } 007D | ~ 007E | DEL 007F |
Letra Número Puntuación Símbolo Otro Indefinido Carácter cambiado desde la versión de 1963 o el borrador de 1965
Usar
ASCII se utilizó por primera vez comercialmente durante 1963 como un código de teletipo de siete bits para la red TWX (TeletypeWriter eXchange) de American Telephone & Telegraph . TWX utilizó originalmente el ITA2 de cinco bits anterior , que también fue utilizado por el sistema de teleimpresor Telex de la competencia . Bob Bemer introdujo características como la secuencia de escape . [4] Su colega británico Hugh McGregor Ross ayudó a popularizar este trabajo, según Bemer, "tanto que el código que se convertiría en ASCII se llamó por primera vez el Código Bemer-Ross en Europa". [48] Debido a su extenso trabajo en ASCII, Bemer ha sido llamado "el padre de ASCII". [49]
El 11 de marzo de 1968, el presidente de los Estados Unidos, Lyndon B. Johnson, ordenó que todas las computadoras compradas por el gobierno federal de los Estados Unidos admitieran ASCII, declarando: [50] [51] [52]
También he aprobado recomendaciones del Secretario de Comercio [ Luther H. Hodges ] con respecto a los estándares para registrar el Código Estándar para el Intercambio de Información en cintas magnéticas y cintas de papel cuando se utilizan en operaciones informáticas. Todas las computadoras y configuraciones de equipos relacionados que se incluyan en el inventario del gobierno federal a partir del 1 de julio de 1969 deben tener la capacidad de utilizar el Código estándar para el intercambio de información y los formatos prescritos por los estándares de cinta magnética y cinta de papel cuando se utilicen estos medios.
ASCII fue la codificación de caracteres más común en la World Wide Web hasta diciembre de 2007, cuando la codificación UTF-8 la superó; UTF-8 es compatible con versiones anteriores de ASCII. [53] [54] [55]
Variantes y derivaciones
A medida que la tecnología informática se extendió por todo el mundo, diferentes organismos de normalización y corporaciones desarrollaron muchas variaciones de ASCII para facilitar la expresión de idiomas distintos del inglés que utilizaban alfabetos basados en romanos. Se podrían clasificar algunas de estas variaciones como " extensiones ASCII ", aunque algunos usan mal ese término para representar todas las variantes, incluidas aquellas que no conservan el mapa de caracteres ASCII en el rango de 7 bits. Además, las extensiones ASCII también se han etiquetado incorrectamente como ASCII.
Códigos de 7 bits
Desde el principio de su desarrollo, [56] ASCII estaba destinado a ser solo una de varias variantes nacionales de un estándar de código de caracteres internacional.
Otros organismos internacionales de normalización han ratificado codificaciones de caracteres como ISO 646 (1967) que son idénticas o casi idénticas a ASCII, con extensiones para caracteres fuera del alfabeto inglés y símbolos utilizados fuera de los Estados Unidos, como el símbolo de la libra esterlina del Reino Unido. (£). Casi todos los países necesitaban una versión adaptada de ASCII, ya que ASCII se adaptaba solo a las necesidades de EE. UU. Y algunos otros países. Por ejemplo, Canadá tenía su propia versión que admitía caracteres franceses.
Muchos otros países desarrollaron variantes de ASCII para incluir letras no inglesas (por ejemplo , é , ñ , ß , Ł ), símbolos de moneda (por ejemplo , £ , ¥ ), etc. Véase también YUSCII (Yugoslavia).
Compartiría la mayoría de los caracteres en común, pero asignaría otros caracteres útiles localmente a varios puntos de código reservados para "uso nacional". Sin embargo, los cuatro años que transcurrieron entre la publicación de ASCII-1963 y la primera aceptación por parte de ISO de una recomendación internacional durante 1967 [57] hicieron que las elecciones de ASCII para los caracteres de uso nacional parecieran ser estándares de facto para el mundo, causando confusión e incompatibilidad. una vez que otros países empezaron a hacer sus propias asignaciones a estos puntos de código.
ISO / IEC 646, como ASCII, es un conjunto de caracteres de 7 bits. No pone a disposición ningún código adicional, por lo que los mismos puntos de código codificaron diferentes caracteres en diferentes países. Los códigos de escape se definieron para indicar qué variante nacional se aplicaba a un fragmento de texto, pero rara vez se usaban, por lo que a menudo era imposible saber con qué variante trabajar y, por lo tanto, qué carácter representaba un código y, en general, el texto. De todos modos, los sistemas de procesamiento solo podían hacer frente a una variante.
Debido a que los caracteres de corchete y llave de ASCII se asignaron a puntos de código de "uso nacional" que se usaron para letras acentuadas en otras variantes nacionales de ISO / IEC 646, un programador alemán, francés o sueco, etc., que utilizó su variante nacional de ISO / IEC 646, en lugar de ASCII, tuvo que escribir, y por lo tanto leer, algo como
ä aÄiÜ = 'Ön'; ü
en vez de
{ a[i] = '\n'; }
Se crearon trígrafos en C para resolver este problema para ANSI C , aunque su introducción tardía y su implementación inconsistente en los compiladores limitaron su uso. Muchos programadores mantuvieron sus computadoras en US-ASCII, por lo que el texto sin formato en sueco, alemán, etc. (por ejemplo, en el correo electrónico o Usenet ) contenía "{,}" y variantes similares en medio de las palabras, algo que esos programadores obtuvieron. solía hacerlo. Por ejemplo, un programador sueco que envía un correo a otro programador preguntándole si debería ir a almorzar, podría obtener "N {jag har sm | rg} sar" como respuesta, que debería ser "Nä jag har smörgåsar", que significa "No, tengo bocadillos ".
En Japón y Corea, aún a partir de la década de 2020, se usa una variación de ASCII, en la que la barra invertida (5C hex) se representa como ¥ (un signo de Yen , en Japón) o ₩ (un signo de Won , en Corea). Esto significa que, por ejemplo, la ruta del archivo C: \ Users \ Smith se muestra como C: ¥ Users ¥ Smith (en Japón) o C: ₩ Users ₩ Smith (en Corea).
Códigos de 8 bits
Eventualmente, cuando las computadoras de 8, 16 y 32 bits (y luego de 64 bits ) comenzaron a reemplazar las computadoras de 12 , 18 y 36 bits como norma, se hizo común usar un byte de 8 bits para almacenar cada carácter en la memoria, proporcionando una oportunidad para parientes extendidos de 8 bits de ASCII. En la mayoría de los casos, estos se desarrollaron como verdaderas extensiones de ASCII, dejando intacta la asignación de caracteres original, pero agregando definiciones de caracteres adicionales después de los primeros 128 (es decir, 7 bits) caracteres.
Las codificaciones incluyen ISCII (India), VISCII (Vietnam). Aunque estas codificaciones a veces se denominan ASCII, el verdadero ASCII se define estrictamente solo por el estándar ANSI.
La mayoría de los primeros sistemas informáticos domésticos desarrollaron sus propios conjuntos de caracteres de 8 bits que contenían dibujos de líneas y glifos de juegos y, a menudo, rellenaban algunos o todos los caracteres de control del 0 al 31 con más gráficos. Las computadoras Kaypro CP / M usaban los 128 caracteres "superiores" para el alfabeto griego.
El código PETSCII que Commodore International usó para sus sistemas de 8 bits es probablemente único entre los códigos posteriores a 1970 porque se basa en ASCII-1963, en lugar del ASCII-1967 más común, como el que se encuentra en la computadora ZX Spectrum . Las computadoras Atari de 8 bits y las computadoras Galaksija también usaban variantes ASCII.
El IBM PC definió la página de códigos 437 , que reemplazó los caracteres de control con símbolos gráficos como caritas sonrientes y asignó caracteres gráficos adicionales a las 128 posiciones superiores. Los sistemas operativos como DOS admitían estas páginas de códigos y los fabricantes de PC IBM las admitían en hardware. Digital Equipment Corporation desarrolló el conjunto de caracteres multinacional (DEC-MCS) para su uso en el popular terminal VT220 como una de las primeras extensiones diseñadas más para idiomas internacionales que para gráficos de bloques. Macintosh definió Mac OS Roman y Postscript también definió un conjunto, ambos contenían letras internacionales y signos de puntuación tipográficos en lugar de gráficos, más como conjuntos de caracteres modernos.
El estándar ISO / IEC 8859 (derivado del DEC-MCS) finalmente proporcionó un estándar que la mayoría de los sistemas copiaron (al menos con la misma precisión que copiaron ASCII, pero con muchas sustituciones). Una extensión adicional popular diseñada por Microsoft, Windows-1252 (a menudo mal etiquetada como ISO-8859-1 ), agregó los signos de puntuación tipográficos necesarios para la impresión de texto tradicional. ISO-8859-1, Windows-1252 y el ASCII original de 7 bits fueron las codificaciones de caracteres más comunes hasta 2008, cuando UTF-8 se volvió más común. [54]
ISO / IEC 4873 introdujo 32 códigos de control adicionales definidos en el rango hexadecimal 80–9F , como parte de la extensión de la codificación ASCII de 7 bits para convertirse en un sistema de 8 bits. [58]
Unicode
Unicode y el conjunto de caracteres universal (UCS) ISO / IEC 10646 tienen una gama mucho más amplia de caracteres y sus diversas formas de codificación han comenzado a suplantar rápidamente a ISO / IEC 8859 y ASCII en muchos entornos. Mientras que ASCII está limitado a 128 caracteres, Unicode y UCS admiten más caracteres al separar los conceptos de identificación única (usando números naturales llamados puntos de código ) y codificación (a formatos binarios de 8, 16 o 32 bits, llamados UTF-8 , UTF-16 y UTF-32 ).
ASCII se incorporó al juego de caracteres Unicode (1991) como los primeros 128 símbolos, por lo que los caracteres ASCII de 7 bits tienen los mismos códigos numéricos en ambos juegos. Esto permite que UTF-8 sea compatible con versiones anteriores de ASCII de 7 bits, ya que un archivo UTF-8 que contiene solo caracteres ASCII es idéntico a un archivo ASCII que contiene la misma secuencia de caracteres. Aún más importante, la compatibilidad hacia adelante está garantizada como software que reconoce solo caracteres ASCII de 7 bits como especiales y no altera los bytes con el conjunto de bits más alto (como se hace a menudo para admitir extensiones ASCII de 8 bits como ISO-8859-1) conservará los datos UTF-8 sin cambios. [59]
Ver también
- 3568 ASCII , un asteroide que lleva el nombre de la codificación de caracteres
- Códigos alternativos
- Ascii85
- Arte ASCII
- Campaña de cinta ASCII
- Latín básico (bloque Unicode) (ASCII como subconjunto de Unicode)
- ASCII extendido
- Representación de caracteres decimales HTML
- Jargon File , un glosario de jerga de programadores de computadoras que incluye una lista de nombres de jerga común para caracteres ASCII
- Lista de juegos de caracteres de computadora
- Lista de caracteres Unicode
Notas
- ^ a b c d e Los 128 caracteres del conjunto de caracteres ASCII de 7 bits se dividen en ocho grupos de 16 caracteres denominados sticks 0–7, asociados con los tres bits más significativos . [14] Dependiendo de la representación horizontal o vertical del mapa de caracteres, los palos se corresponden con filas o columnas de la tabla.
- ^ Loscaracteres Unicode del área U + 2400 a U + 2421 reservados para representar caracteres de control cuando es necesario imprimirlos o mostrarlos en lugar de que realicen su función prevista. Es posible que algunos navegadores no los muestren correctamente.
- ^ La notación Caret se usa a menudo para representar caracteres de control en un terminal. En la mayoría de los terminales de texto, si mantiene presionada laCtrltecla mientras escribe el segundo carácter, se escribirá el carácter de control. A veces, la tecla de mayúsculas no es necesaria, por ejemplo,
^@
se puede escribir con solo Ctrl y 2. - ^ Secuencias de escape de caracteresen el lenguaje de programación C y muchos otros lenguajes influenciados por él, como Java y Perl (aunque no todas las implementaciones admiten necesariamente todas las secuencias de escape).
- ^ Elcarácter de retroceso también se puede ingresar presionando la← Backspacetecla en algunos sistemas.
- ^ a b La ambigüedad de Backspace se debe a los primeros terminales diseñados asumiendo que el uso principal del teclado sería perforar manualmente la cinta de papel sin estar conectado a una computadora. Para eliminar el carácter anterior, se tenía que hacer una copia de seguridad de la perforadora de cinta de papel, que por razones mecánicas y de simplicidad era un botón en la perforadora en sí y no en el teclado, luego escribir el carácter de borrado. Por lo tanto, colocaron una llave que produce un borrado en el lugar utilizado en las máquinas de escribir para retroceder. Cuando los sistemas usaban estos terminales y proporcionaban edición de línea de comandos, tenían que usar el código "rubout" para realizar un retroceso y, a menudo, no interpretaban el carácter de retroceso (es posible que hagan eco de "
^H
" para retroceder). Otros terminales no diseñados para cinta de papel hicieron que la llave en esta ubicación produzca retroceso, y los sistemas diseñados para estos usaron ese carácter para respaldar. Dado que el código de eliminación a menudo producía un efecto de retroceso, esto también obligaba a los fabricantes de terminales a hacer que cualquier Deletetecla produjera algo diferente al carácter de eliminación. - ^ El carácter de tabulación también se puede ingresar presionando laTab ↹tecla en la mayoría de los sistemas.
- ^ Elcarácter de retorno de carro también se puede ingresar presionando latecla↵ EnteroReturnen la mayoría de los sistemas.
- ^ La
\e
secuencia de escape no forma parte de ISO C ni de muchas otras especificaciones de idioma. Sin embargo, varios compiladores lo entienden, incluido GCC . - ^ El carácter Escape también se puede ingresar presionando laEsctecla en algunos sistemas.
- ^ ^^ significaCtrl+^(presionando "Ctrl" y lasteclas de intercalación ).
- ^ El carácter Eliminar a veces se puede ingresar presionando la← Backspacetecla en algunos sistemas.
- ^ Impresos, los caracteres son:
! "# $% & '() * +, -. / 0123456789:; <=>? @ ABCDEFGHIJKLMNOPQRSTUVWXYZ [\] ^ _` abcdefghijklmnopqrstuvwxyz {|} ~
Referencias
- ^ ANSI (1 de diciembre de 1975). ISO-IR-006: Conjunto de caracteres gráficos ASCII (PDF) . ITSCJ / IPSJ .
- ^ a b "Juegos de caracteres" . Autoridad de Números Asignados de Internet (IANA) . 2007-05-14 . Consultado el 25 de agosto de 2019 .
- ^ a b c d e f g h i j k l m n o p q r s Mackenzie, Charles E. (1980). Juegos de caracteres codificados, historia y desarrollo (PDF) . Serie de programación de sistemas (1 ed.). Addison-Wesley Publishing Company, Inc. págs. 6, 66, 211, 215, 217, 220, 223, 228, 236–238, 243–245, 247–253, 423, 425–428, 435–439. ISBN 978-0-201-14460-4. LCCN 77-90165 . Archivado (PDF) desde el original el 26 de mayo de 2016 . Consultado el 25 de agosto de 2019 .
- ^ a b Brandel, Mary (6 de julio de 1999). "1963: El debut de ASCII" . CNN . Archivado desde el original el 17 de junio de 2013 . Consultado el 14 de abril de 2008 .
- ^ a b c d "Código estándar americano para el intercambio de información, ASA X3.4-1963" . Asociación Estadounidense de Normas (ASA). 1963-06-17 . Consultado el 6 de junio de 2020 .
- ^ a b c "Código estándar de Estados Unidos para el intercambio de información, USAS X3.4-1967". Instituto de Normas de los Estados Unidos de América (USASI). 1967-07-07. Cite journal requiere
|journal=
( ayuda ) - ^ Jennings, Thomas Daniel (20 de abril de 2016) [1999]. "Un historial anotado de algunos códigos de caracteres o ASCII: Código estándar americano para la infiltración de información" . Investigación sensible (SR-IX) . Consultado el 8 de marzo de 2020 .
- ^ a b c "Estándar nacional estadounidense para sistemas de información - Juegos de caracteres codificados - Código estándar nacional estadounidense de 7 bits para el intercambio de información (ASCII de 7 bits), ANSI X3.4-1986". Instituto Nacional Estadounidense de Normas (ANSI). 1986-03-26. Cite journal requiere
|journal=
( ayuda ) - ^ Vint Cerf (16 de octubre de 1969). Formato ASCII para intercambio de red . IETF . doi : 10.17487 / RFC0020 . RFC 20 .
- ^ Barry Leiba (12 de enero de 2015). "Clasificación correcta de RFC 20 (formato ASCII) al estándar de Internet" . IETF .
- ^ Shirley, R. (agosto de 2007), Glosario de seguridad en Internet, versión 2 , RFC 4949 , archivado desde el original el 13 de junio de 2016 , consultado el 13 de junio de 2016
- ^ Maini, Anil Kumar (2007). Electrónica digital: principios, dispositivos y aplicaciones . John Wiley e hijos . pag. 28. ISBN 978-0-470-03214-5.
Además, define códigos para 33 caracteres de control no imprimibles, en su mayoría obsoletos, que afectan la forma en que se procesa el texto.
- ^ Bukstein, Ed (julio de 1964). "Códigos informáticos binarios y ASCII" . Mundo de la electrónica . 72 (1): 28-29. Archivado desde el original el 3 de marzo de 2016 . Consultado el 22 de mayo de 2016 .
- ^ a b c d e f Bemer, Robert William (1980). "Capítulo 1: Dentro de ASCII" (PDF) . Software de propósito general . Lo mejor de la era de la interfaz. 2 . Portland, OR, EE.UU .: dilithium Press. págs. 1-50. ISBN 978-0-918398-37-6. LCCN 79-67462 . Archivado desde el original el 27 de agosto de 2016 . Consultado el 27 de agosto de 2016 , de:
- Bemer, Robert William (mayo de 1978). "Dentro de ASCII - Parte I". Edad de la interfaz . 3 (5): 96–102.
- Bemer, Robert William (junio de 1978). "Dentro de ASCII - Parte II". Edad de la interfaz . 3 (6): 64–74.
- Bemer, Robert William (julio de 1978). "Dentro de ASCII - Parte III". Edad de la interfaz . 3 (7): 80–87.
- ^ Breve informe: Reunión del grupo de trabajo del CCITT sobre el nuevo alfabeto telegráfico, 13-15 de mayo de 1963.
- ^ Informe de ISO / TC / 97 / SC 2 - Reunión del 29 al 31 de octubre de 1963.
- ^ Informe sobre el grupo de tareas X3.2.4, 11 de junio de 1963, edificio del Pentágono, Washington, DC.
- ^ Informe de la reunión No. 8, Grupo de trabajo X3.2.4, 17 y 18 de diciembre de 1963
- ^ a b c Invierno, Dik T. (2010) [2003]. "Normas estadounidenses e internacionales: ASCII" . Archivado desde el original el 16 de enero de 2010.
- ^ a b c d e f g Salste, Tuomas (enero de 2016). "Juegos de caracteres de 7 bits: revisiones de ASCII" . Aivosto Oy. urna: nbn: fi-fe201201011004 . Archivado desde el original el 13 de junio de 2016 . Consultado el 13 de junio de 2016 .
- ^ "Información". Scientific American (edición especial). 215 (3). Septiembre de 1966. JSTOR e24931041 .
- ^ Korpela, Jukka K. (14 de marzo de 2014) [7 de junio de 2006]. Explicación de Unicode: internacionalización de documentos, programas y sitios web (2ª versión de la 1ª ed.). O'Reilly Media, Inc. pág. 118. ISBN 978-0-596-10121-3.
- ^ ANSI INCITS 4-1986 (R2007): Estándar nacional estadounidense para sistemas de información - Juegos de caracteres codificados - Código estándar nacional estadounidense de 7 bits para el intercambio de información (ASCII de 7 bits) (PDF) , 2007 [1986], archivado (PDF) de el original el 2014-02-07 , consultado el 2016-06-12
- ^ "INCITS 4-1986 [R2012]: Sistemas de información - Juegos de caracteres codificados - Código estándar nacional estadounidense de 7 bits para el intercambio de información (ASCII de 7 bits)" . 2012-06-15. Archivado desde el original el 28 de febrero de 2020 . Consultado el 28 de febrero de 2020 .
- ^ "INCITS 4-1986 [R2017]: Sistemas de información - Juegos de caracteres codificados - Código estándar nacional estadounidense de 7 bits para el intercambio de información (ASCII de 7 bits)" . 2017-11-02 [2017-06-09]. Archivado desde el original el 28 de febrero de 2020 . Consultado el 28 de febrero de 2020 .
- ^ Secuenciación de bits del Código estándar nacional estadounidense para el intercambio de información en la transmisión de datos serie por bit , Instituto Nacional Estadounidense de Estándares (ANSI), 1966, X3.15-1966
- ^ "BruXy: comunicación por radio teletipo" . 2005-10-10. Archivado desde el original el 12 de abril de 2016 . Consultado el 9 de mayo de 2016 .
El código transmitido utiliza el Alfabeto Telegráfico Internacional No. 2 (ITA-2) que fue introducido por el CCITT en 1924.
- ^ a b Smith, Gil (2001). "Códigos de comunicación por teletipo" (PDF) . Baudot.net. Archivado (PDF) desde el original el 20 de agosto de 2008 . Consultado el 11 de julio de 2008 .
- ^ Sawyer, Stanley A .; Krantz, Steven George (1995). Un manual de TeX para científicos . CRC Press, LLC . pag. 13. bibcode : 1995tps..book ..... S . ISBN 978-0-8493-7159-2. Archivado desde el original el 22 de diciembre de 2016 . Consultado el 29 de octubre de 2016 .
- ^ Savard, John JG "Teclados de computadora" . Archivado desde el original el 24 de septiembre de 2014 . Consultado el 24 de agosto de 2014 .
- ^ "Definición ASCIIbetical" . Revista de PC . Archivado desde el original el 9 de marzo de 2013 . Consultado el 14 de abril de 2008 .
- ^ Resnick, P. (abril de 2001), Internet Message Format , RFC 2822 , archivado desde el original el 13 de junio de 2016 , consultado el 13 de junio de 2016 (NB. NO-WS-CTL.)
- ^ McConnell, Robert; Haynes, James; Warren, Richard. "Comprensión de los códigos ASCII" . Archivado desde el original el 27 de febrero de 2014 . Consultado el 11 de mayo de 2014 .
- ^ Barry Margolin (29 de mayo de 2014). "Re: historial del editor y procesador de texto (antes: Re: RTF para emacs)" . help-gnu-emacs (lista de correo). Archivado desde el original el 14 de julio de 2014 . Consultado el 11 de julio de 2014 .
- ^ a b "Manual del sistema de multiprogramación PDP-6" (PDF) . Corporación de Equipos Digitales (DEC). 1965. pág. 43. Archivado (PDF) desde el original el 14 de julio de 2014 . Consultado el 10 de julio de 2014 .
- ^ a b "Manual de referencia de PDP-10, Libro 3, Comunicación con el monitor" (PDF) . Corporación de Equipos Digitales (DEC). 1969. p. 5-5. Archivado (PDF) desde el original el 15 de noviembre de 2011 . Consultado el 10 de julio de 2014 .
- ^ "Ayuda - Manual GNU Emacs" . Archivado desde el original el 11 de julio de 2018 . Consultado el 11 de julio de 2018 .
- ^ Tim Paterson (8 de agosto de 2007). "¿Es DOS una estafa de CP / M?" . DosMan Drivel . Archivado desde el original el 20 de abril de 2018 . Consultado el 19 de abril de 2018 .
- ^ Ossanna, JF ; Saltzer, JH (17-19 de noviembre de 1970). "Problemas técnicos y de ingeniería humana en la conexión de terminales a un sistema de tiempo compartido" (PDF) . Actas de la Conferencia de Computación Conjunta de Otoño del 17 al 19 de noviembre de 1970 (FJCC) . pag. 357: AFIPS Presione. págs. 355–362. Archivado (PDF) desde el original el 19 de agosto de 2012 . Consultado el 29 de enero de 2013 .
Usar una función de "nueva línea" (combinación de retorno de carro y avance de línea) es más simple tanto para el hombre como para la máquina que requerir ambas funciones para comenzar una nueva línea; la Norma Nacional Estadounidense X3.4-1968 permite que el código de avance de línea lleve el significado de nueva línea.
Mantenimiento de CS1: ubicación ( enlace ) - ^ O'Sullivan, T. (05/19/1971), protocolo TELNET , Internet Engineering Task Force (IETF), pp. 4-5, RFC 158 , archivado desde el original, el 06/13/2016 , recuperados 2013-01- 28
- ^ Neigus, Nancy J. (08/12/1973), File Transfer Protocol , Internet Engineering Task Force (IETF), RFC 542 , archivado desde el original, el 13/06/2016 , recuperada 01/28/2013
- ^ Postel, Jon (junio de 1980), File Transfer Protocol , Internet Engineering Task Force (IETF), RFC 765 , archivado desde el original, el 06/13/2016 , recuperados 28/01/2013
- ^ "Plan de traducción EOL para Mercurial" . Mercurial. Archivado desde el original el 16 de junio de 2016 . Consultado el 24 de junio de 2017 .
- ^ Bernstein, Daniel J. "Bare LFs in SMTP" . Archivado desde el original el 29 de octubre de 2011 . Consultado el 28 de enero de 2013 .
- ^ Guía de interfaz CP / M 1.4 (PDF) . Investigación digital . 1978. p. 10. Archivado (PDF) desde el original el 29 de mayo de 2019 . Consultado el 7 de octubre de 2017 .
- ^ Cerf, Vinton Gray (1969-10-16), formato ASCII para Network Interchange , Network Working Group, RFC 20 , archivado desde el original el 13 de junio de 2016 , consultado el 13 de junio de 2016(NB. Redacción casi idéntica a USAS X3.4-1968 excepto por la introducción).
- ^ Haynes, Jim (13 de enero de 2015). "De primera mano: Chad es nuestro producto más importante: la memoria de un ingeniero de Teletype Corporation" . Wiki de Historia de la Ingeniería y la Tecnología (ETHW). Archivado desde el original el 31 de octubre de 2016 . Consultado el 31 de octubre de 2016 .
Hubo el cambio de ASCII de 1961 a ASCII de 1968. Algunos lenguajes de computadora usaban caracteres en ASCII de 1961, como flecha hacia arriba y flecha hacia la izquierda. Estos caracteres desaparecieron del ASCII de 1968. Trabajamos con Fred Mocking, que ahora estaba en Ventas en Teletype , en un cilindro de tipo que comprometería los caracteres cambiantes para que los significados de 1961 ASCII no se perdieran por completo. El carácter de subrayado se hizo más bien en forma de cuña para que también pudiera servir como una flecha hacia la izquierda.
- ^ Bemer, Robert William . "Bemer cumple con Europa (estándares informáticos) - viñetas de historia informática" . Trailing-edge.com. Archivado desde el original el 17 de octubre de 2013 . Consultado el 14 de abril de 2008 .(NB. Bemer trabajaba en IBM en ese momento).
- ^ "Robert William Bemer: biografía" . 2013-03-09. Archivado desde el original el 16 de junio de 2016.
- ^ Johnson, Lyndon Baines (11 de marzo de 1968). "Memorando que aprueba la adopción por el gobierno federal de un código estándar para el intercambio de información" . El Proyecto de la Presidencia Estadounidense. Archivado desde el original el 14 de septiembre de 2007 . Consultado el 14 de abril de 2008 .
- ^ Richard S. Shuford (20 de diciembre de 1996). "Re: ¿Historia temprana de ASCII?" . Grupo de noticias : alt.folklore.computers . Usenet: [email protected] .
- ^ Folts, Harold C .; Karp, Harry, eds. (1 de febrero de 1982). Compilación de estándares de comunicación de datos (segunda edición revisada). McGraw-Hill Inc. ISBN 978-0-07-021457-6.
- ^ Dubost, Karl (6 de mayo de 2008). "Crecimiento de UTF-8 en la Web" . Blog del W3C . Consorcio World Wide Web . Archivado desde el original el 16 de junio de 2016 . Consultado el 15 de agosto de 2010 .
- ^ a b Davis, Mark (5 de mayo de 2008). "Pasando a Unicode 5.1" . Blog oficial de Google . Archivado desde el original el 16 de junio de 2016 . Consultado el 15 de agosto de 2010 .
- ^ Davis, Mark (28 de enero de 2010). "Unicode acercándose al 50% de la web" . Blog oficial de Google . Archivado desde el original el 16 de junio de 2016 . Consultado el 15 de agosto de 2010 .
- ^ "Criterios específicos", adjunto al memorando de RW Reach, "Reunión X3-2 - 14 y 15 de septiembre", 18 de septiembre de 1961
- ^ Maréchal, R. (1967-12-22), ISO / TC 97 - Computadoras y procesamiento de información: Aceptación del proyecto de Recomendación ISO No. 1052
- ^ El Consorcio Unicode (2006-10-27). "Capítulo 13: Áreas especiales y caracteres de formato" (PDF) . En Allen, Julie D. (ed.). El estándar Unicode, versión 5.0 . Upper Saddle River, Nueva Jersey, EE. UU .: Addison-Wesley Professional . pag. 314. ISBN 978-0-321-48091-0. Consultado el 13 de marzo de 2015 .
- ^ "utf-8 (7) - Página de manual de Linux" . Man7.org. 2014-02-26. Archivado desde el original el 22 de abril de 2014 . Consultado el 21 de abril de 2014 .
Otras lecturas
- Bemer, Robert William (1960). "Una propuesta para la compatibilidad de códigos de caracteres". Comunicaciones de la ACM . 3 (2): 71–72. doi : 10.1145 / 366959.366961 . S2CID 9591147 .
- Bemer, Robert William (23 de mayo de 2003). "La Babel de códigos antes de ASCII: la encuesta de 1960 de conjuntos de caracteres codificados: las razones de ASCII" . Archivado desde el original el 17 de octubre de 2013 . Consultado el 9 de mayo de 2016 , de:
- Bemer, Robert William (diciembre de 1960). "Estudio de la representación de caracteres codificados". Comunicaciones de la ACM . 3 (12): 639–641. doi : 10.1145 / 367487.367493 . S2CID 21403172 .
- Smith, HJ; Williams, FA (diciembre de 1960). "Encuesta de códigos de tarjetas perforadas" . Comunicaciones de la ACM . 3 (12): 642. doi : 10.1145 / 367487.367491 .
- Código estándar nacional estadounidense para el intercambio de información . Instituto Nacional Estadounidense de Estándares . 1977.
- Robinson, GS; Cargill, C. (1996). "Historia e impacto de los estándares informáticos". Computadora . 29 (10): 79–85. doi : 10.1109 / 2.539725 .
- Mullendore, Ralph Elvin (1964) [1963]. Ptak, John F. (ed.). "Sobre el desarrollo temprano de ASCII - La historia de ASCII" . JF Ptak Science Books (publicado en marzo de 2012). Archivado desde el original el 26 de mayo de 2016 . Consultado el 26 de mayo de 2016 .
enlaces externos
- "Controles C0 y latín básico - Rango: 0000–007F" (PDF) . El estándar Unicode 8.0 . Unicode, Inc. 2015 [1991]. Archivado (PDF) desde el original el 26 de mayo de 2016 . Consultado el 26 de mayo de 2016 .
- Fischer, Eric. "La evolución de los códigos de caracteres, 1874-1968". CiteSeerX 10.1.1.96.678 . Cite journal requiere
|journal=
( ayuda ) [1]