
ASCII extendido es un repertorio de codificaciones de caracteres que generalmente incluye el conjunto original de 96 caracteres ASCII , más hasta 128 caracteres adicionales. No existe una definición formal de "ASCII extendido" y el uso del término ha sido criticado. [ 1 ] [ 2 ] [ 3 ] [ a ]
La norma ISO 8859 fue la primera norma internacional en formalizar una ampliación del conjunto de caracteres ASCII: de las numerosas variantes lingüísticas que codificaba, la ISO 8859-1 —que admite la mayoría de los idiomas de Europa Occidental— es más conocida en Occidente como ISO Latin-1 . Desde la ISO 8859, han surgido muchas otras codificaciones ASCII extendidas. Asimismo, EBCDIC desarrolló numerosas variantes extendidas a lo largo de las décadas.
Todos los sistemas operativos modernos utilizan Unicode , que admite miles de caracteres. Sin embargo, el ASCII extendido sigue siendo importante en la historia de la informática , y la compatibilidad con múltiples conjuntos de caracteres ASCII extendidos requirió que el software se escribiera de forma que facilitara enormemente la compatibilidad con el método de codificación UTF-8 posteriormente.
Historia
ASCII se diseñó en la década de 1960 para teletipos , telegrafía y algunas aplicaciones informáticas. Los primeros teletipos eran electromecánicos, carecían de microprocesador y solo contaban con la memoria electromecánica necesaria para funcionar. Procesaban un carácter a la vez, volviendo inmediatamente a un estado de reposo; esto implicaba que cualquier secuencia de control debía constar de un solo carácter, por lo que era necesario reservar una gran cantidad de códigos para dichos controles. Eran impresoras de impacto derivadas de las máquinas de escribir y solo podían imprimir un conjunto fijo de glifos, que se fundían en uno o varios elementos de metal, lo que también requería un conjunto mínimo de glifos.
El ASCII de siete bits mejoró los códigos anteriores de cinco y seis bits. De los 2⁷ = 128 códigos, 33 se usaban para controles y 95 caracteres imprimibles cuidadosamente seleccionados (94 glifos y un espacio), que incluyen el alfabeto inglés (mayúsculas y minúsculas), dígitos y 31 signos de puntuación y símbolos: todos los símbolos de una máquina de escribir estándar de EE. UU. más algunos seleccionados para tareas de programación. Algunos periféricos populares solo implementaban un subconjunto de 64 caracteres imprimibles: el Teletype Modelo 33 no podía transmitir de la "a" a la "z" ni cinco símbolos menos comunes ( ` , { , | , } y ~ ). y cuando recibían dichos caracteres, en su lugar imprimían de la "A" a la "Z" ( mayúsculas forzadas ) y otros cinco símbolos en su mayoría similares ( @ , [ , \ , ] y ^ ).
El conjunto de caracteres ASCII es apenas lo suficientemente grande para el inglés estadounidense, carece de muchos glifos comunes en la composición tipográfica y es demasiado pequeño para un uso universal. Se necesitan muchas más letras y símbolos para representar directamente letras de alfabetos distintos del inglés, más tipos de puntuación y espaciado, más operadores y símbolos matemáticos (× ÷ ⋅ ≠ ≥ ≈ π, etc.), algunos símbolos únicos utilizados por ciertos lenguajes de programación, ideogramas , logogramas , caracteres para dibujar recuadros, etc.
El mayor problema para los usuarios de computadoras en todo el mundo eran las necesidades de sus alfabetos locales. El alfabeto inglés de ASCII casi se adapta a los idiomas europeos, si las letras acentuadas se escriben sin acentos o se utilizan aproximaciones de dos caracteres, como ss para ß . Rápidamente aparecieron variantes locales modificadas de ASCII de 7 bits, intercambiando algunos símbolos menos utilizados por símbolos o letras muy deseados, como reemplazar # por £ en los teletipos del Reino Unido, \ por ¥ en Japón o ₩ en Corea, etc. Se obtuvieron al menos 29 conjuntos de variantes. Doce puntos de código fueron modificados por al menos un conjunto nacional, dejando solo 82 códigos "invariantes" . Sin embargo, los lenguajes de programación habían asignado significado a muchos de los caracteres reemplazados, y se idearon soluciones alternativas, como secuencias de tres caracteres??< de C para ??>representar { y } . [ 4 ] Los idiomas con alfabetos básicos diferentes podían usar la transliteración, como reemplazar todas las letras latinas por las letras cirílicas más parecidas (lo que resultaba en un texto extraño pero algo legible cuando el inglés se imprimía en cirílico o viceversa). También se idearon sistemas para superponer dos letras (a menudo con la tecla de retroceso entre ellas) para producir letras acentuadas. Los usuarios no se sentían cómodos con ninguna de estas soluciones de compromiso y, a menudo, recibían un soporte deficiente.
Cuando en la década de 1970 las computadoras y los periféricos se estandarizaron en bytes de ocho bits , se hizo evidente que las computadoras y el software podían manejar texto que utilizaba conjuntos de 256 caracteres prácticamente sin costo adicional de programación ni de almacenamiento (siempre que el octavo bit no utilizado de cada byte no se reutilizara de alguna manera, como en la verificación de errores, campos booleanos o la compresión de 8 caracteres en 7 bytes). Esto permitiría usar ASCII sin modificaciones y proporcionaría 128 caracteres adicionales. Muchos fabricantes diseñaron conjuntos de caracteres de 8 bits que consistían en ASCII más hasta 128 de los códigos no utilizados. De esta manera, se pudieron crear codificaciones que abarcaban todos los idiomas principales de Europa Occidental (y Latinoamérica) y muchos más.
Los 128 caracteres adicionales aún no son suficientes para cubrir todos los propósitos, todos los idiomas, ni siquiera todos los idiomas europeos, por lo que la aparición de muchos conjuntos de caracteres de 8 bits derivados de ASCII, tanto propios como nacionales, era inevitable. La traducción entre estos conjuntos ( transcodificación ) es compleja (especialmente si un carácter no está presente en ambos conjuntos) y, a menudo, no se realizaba, lo que producía mojibake (texto resultante semilegible; con frecuencia, los usuarios aprendían a decodificarlo manualmente). Finalmente, a finales de la década de 1990, hubo intentos de cooperación o coordinación por parte de organismos de normalización nacionales e internacionales, pero los conjuntos de caracteres propios de los fabricantes siguieron siendo, con diferencia, los más populares, principalmente porque las normas internacionales excluían caracteres populares o propios de culturas específicas.
Extensiones patentadas
Varias modificaciones y extensiones propietarias de ASCII aparecieron en computadoras centrales [ b ] y minicomputadoras , especialmente en universidades, para satisfacer su necesidad de apoyar la enseñanza de matemáticas, ciencias e idiomas.
Hewlett-Packard comenzó a añadir caracteres europeos a su conjunto de caracteres ASCII extendido de 7 y 8 bits, HP Roman Extension, alrededor de 1978/1979, para su uso en estaciones de trabajo, terminales e impresoras. Posteriormente, esto evolucionó hasta convertirse en los conjuntos de caracteres regulares de 8 bits, HP Roman-8 y HP Roman-9, ampliamente utilizados (así como varias variantes).
Los ordenadores domésticos Atari y Commodore añadieron muchos símbolos gráficos a su ASCII no estándar ( ATASCII y PETSCII , respectivamente , basados en el estándar ASCII original de 1963).
El conjunto de caracteres TRS-80 para la computadora doméstica TRS-80 agregó 64 caracteres semigráficos (0x80 a 0xBF) que implementaban gráficos de bloques de baja resolución. (Cada carácter gráfico de bloques se mostraba como una cuadrícula de píxeles de 2x3, donde cada píxel de bloque era controlado efectivamente por uno de los 6 bits inferiores). [ 5 ]
IBM introdujo códigos ASCII extendidos de ocho bits en el IBM PC original y posteriormente produjo variaciones para diferentes idiomas y culturas. IBM denominó a estos conjuntos de caracteres páginas de códigos y les asignó números de referencia , tanto a los que ellos mismos inventaron como a muchos inventados y utilizados por otros fabricantes. Por consiguiente, los conjuntos de caracteres suelen indicarse mediante su número de página de códigos IBM. En las páginas de códigos compatibles con ASCII, los 128 caracteres inferiores mantenían sus valores ASCII estándar, y se podían habilitar diferentes páginas (o conjuntos de caracteres) en los 128 caracteres superiores. Los ordenadores DOS fabricados para el mercado norteamericano, por ejemplo, utilizaban la página de códigos 437 , que incluía caracteres acentuados necesarios para el francés, el alemán y algunos otros idiomas europeos, así como algunos caracteres gráficos para el dibujo de líneas. El conjunto de caracteres más amplio permitía crear documentos en una combinación de idiomas como inglés y francés (aunque los ordenadores franceses suelen utilizar la página de códigos 850 ), pero no, por ejemplo, en inglés y griego (que requería la página de códigos 737 ).
Apple Computer introdujo sus propios códigos ASCII extendidos de ocho bits en Mac OS , como Mac OS Roman . La Apple LaserWriter también introdujo el conjunto de caracteres Postscript .
Digital Equipment Corporation (DEC) desarrolló el Conjunto de Caracteres Multinacional ( MCO) , que tenía menos caracteres pero más combinaciones de letras y diacríticos. Era compatible con el VT220 y los terminales de computadora DEC posteriores . Este conjunto se convirtió más tarde en la base de otros conjuntos de caracteres como el Conjunto de Caracteres Internacional Lotus (LICS), ECMA-94 e ISO 8859-1 .
ISO 8859
En 1987, la Organización Internacional de Normalización (ISO) publicó un conjunto de estándares para extensiones ASCII de ocho bits, la ISO 8859. El más popular de ellos fue la ISO 8859-1 (también llamada "ISO Latin 1"), que contiene caracteres suficientes para la mayoría de los idiomas de Europa Occidental. Otros estándares del grupo 8859 incluían la ISO 8859-2 para idiomas de Europa del Este que utilizan el alfabeto latino y la ISO 8859-5 para idiomas que utilizan el alfabeto cirílico , entre otros.
Una diferencia notable entre los estándares ISO y algunos conjuntos de caracteres ASCII extendidos específicos de proveedores radica en que los primeros 32 puntos de código del bloque de extensión están reservados en el estándar ISO para uso de control y no están disponibles para caracteres imprimibles. [ c ] Esta política emulaba el bloque de códigos de control C0 , que ocupa los primeros 32 puntos de código de ASCII. Este aspecto del estándar fue prácticamente ignorado por otros conjuntos de caracteres ASCII extendidos.
Windows-1252
Microsoft tenía la intención de usar los estándares ISO 8859 en Windows, [ 7 ] pero pronto reemplazó los códigos de control C1 con caracteres adicionales, creando el conjunto de caracteres propietario Windows-1252. Los caracteres añadidos incluían las comillas curvas , la raya , el símbolo del euro y las letras francesas y finlandesas de ISO-8859-15 . Este se convirtió en el ASCII extendido más utilizado en el mundo y a menudo se usa en la web incluso cuando se especifica 8859-1. [ 8 ] [ 9 ]
confusión de conjuntos de caracteres
Para interpretar y mostrar correctamente los datos de texto (secuencias de caracteres) que incluyen códigos extendidos, el software que lee o recibe el texto debe usar la codificación específica en la que se escribió. Elegir una codificación incorrecta provoca la visualización de caracteres a menudo completamente erróneos, conocidos en japonés como mojibake . Dado que ASCII es común a todas las codificaciones "ASCII extendidas", usar la incorrecta da como resultado un inglés legible (o cualquier idioma que use solo AZ), y la mayoría de los números y signos de puntuación se conservan.
Muchos protocolos de comunicación , sobre todo SMTP y HTTP , requieren que la codificación de caracteres del contenido se etiquete con identificadores de conjunto de caracteres asignados por la IANA , con el fin de que el software interprete correctamente múltiples codificaciones. Sin embargo, la gran mayoría del software se basa en una configuración del sistema que indica la codificación preferida del usuario o se compila con una configuración predeterminada.
En la actualidad, Unicode ha reemplazado casi por completo el uso de codificaciones que no son ASCII. Dado que muchos estándares de Internet utilizan ISO 8859-1, y que Microsoft Windows (para la mayoría de los idiomas utilizados en Europa Occidental y América) utiliza el superconjunto CP1252 de ISO 8859-1, en general se puede asumir con seguridad que cualquier secuencia de bytes que no sea UTF-8 válida está en CP1252 o en la configuración del sistema.
Véase también
- Arte ASCII : forma de arte digital que utiliza caracteres de texto.
- Dígrafos y trígrafos (programación)
- Método de entrada : método para generar caracteres no nativos en dispositivos.
- Lista de caracteres Unicode
- KOI-8 – Conjunto de caracteres
Notas
- ↑ porque puede interpretarse erróneamente como que el Instituto Nacional Estadounidense de Estándares (ANSI) actualizó su estándar ANSI X3.4-1986 para incluir más caracteres, o que el término identifica una única codificación inequívoca, ninguna de las cuales es el caso.
- ↑ excepto en los mainframes de IBM, que usaban EBCDIC en lugar de ASCII
- ↑ También están reservados en Unicode. [ 6 ]
Referencias
- ↑ Benjamin Riefenstahl (26 de febrero de 2001). "Re: Información de Cygwin Termcap que involucra caracteres ASCII extendidos" . cygwin (Lista de correo). Archivado del original el 11 de julio de 2013. Recuperado el 2 de diciembre de 2012 .
- ↑ S. Wolicki (23 de marzo de 2012). "Imprimir códigos ASCII extendidos en sql*plus" . Consultado el 17 de mayo de 2022 .
- ↑ Mark J. Reed (28 de marzo de 2004). "vim: ¿cómo escribir en ASCII extendido?" . Grupo de noticias : comp.editors . Consultado el 17 de mayo de 2022 .
- ↑ "2.2.1.1 Secuencias de trigrafos" . Fundamento del Estándar Nacional Estadounidense para Sistemas de Información - Lenguaje de Programación - C. Archivado del original el 29 de septiembre de 2018. Recuperado el 8 de febrero de 2019 .
- ↑ Goldklang, Ira (2015). "Graphic Tips & Tricks" . Archivado del original el 29 de julio de 2017. Recuperado el 29 de julio de 2017 .
- ↑ "Controles C1 y suplemento Latin-1 | Rango: 0080–00FF" (PDF) . El estándar Unicode, versión 15.1 . Consorcio Unicode .
- ↑ "Referencia HTML Windows-1252" . www.w3schools.com . Consultado el 10 de febrero de 2025 .
- ↑ "Conjuntos de caracteres HTML" . W3 Schools .
Cuando un navegador detecta ISO-8859-1, normalmente usa Windows-1252 por defecto, porque Windows-1252 tiene 32 caracteres internacionales más.
- ↑ "Codificación" . WHATWG . 27 de enero de 2015. sec. 5.2 Nombres y etiquetas. Archivado del original el 4 de febrero de 2015. Recuperado el 4 de febrero de 2015 .
Enlaces externos
- Una breve página sobre ASCII, con la tabla de 8 bits del fabricante de equipos originales (OEM) y la tabla de 8 bits ANSI.
- Conjuntos de caracteres
- ASCII