Código 39 conjunto completo de caracteres ascii. Codificar información de texto

Hola, queridos lectores del blog. Hoy hablaremos con usted sobre de dónde provienen los krakozyabrs en un sitio web y en los programas, qué codificaciones de texto existen y cuáles deben usarse. Echemos un vistazo más de cerca a la historia de su desarrollo, desde ASCII básico, así como sus versiones extendidas CP866, KOI8-R, Windows 1251 y terminando con las modernas codificaciones del consorcio Unicode UTF 16 y 8.

Para algunos, esta información puede parecer innecesaria, pero ¿saben cuántas preguntas recibo específicamente sobre los krakozyabrs (conjunto de caracteres ilegibles) que se arrastran? Ahora tendré la oportunidad de remitir a todos al texto de este artículo y encontrar mis propios errores. Bueno, prepárate para absorber la información e intenta seguir el flujo de la historia.

ASCII: codificación de texto básica para el alfabeto latino

El desarrollo de las codificaciones de texto se produjo simultáneamente con la formación de la industria de TI, y durante este tiempo lograron sufrir muchos cambios. Históricamente, todo comenzó con EBCDIC, que era bastante disonante en la pronunciación rusa, lo que permitía codificar letras del alfabeto latino, números arábigos y signos de puntuación con caracteres de control.

Pero aún así, el punto de partida para el desarrollo de codificaciones de texto modernas debe considerarse el famoso ASCII(Código estándar americano para el intercambio de información, que en ruso suele pronunciarse como “preguntar”). Describe los primeros 128 caracteres más utilizados por los usuarios de habla inglesa: letras latinas, números arábigos y signos de puntuación.

Estos 128 caracteres descritos en ASCII también incluían algunos caracteres de servicio como corchetes, marcas de almohadilla, asteriscos, etc. De hecho, puedes verlos tú mismo:

Son estos 128 caracteres de la versión original de ASCII los que se han convertido en el estándar, y en cualquier otra codificación seguramente los encontrarás y aparecerán en este orden.

Pero el hecho es que con un byte de información se pueden codificar no 128, sino hasta 256 valores diferentes (dos elevado a ocho es igual a 256), por lo que después de la versión básica de Asuka toda una serie de codificaciones ASCII extendidas, en el que, además de 128 caracteres básicos, también era posible codificar símbolos de la codificación nacional (por ejemplo, ruso).

Aquí probablemente valga la pena decir un poco más sobre los sistemas numéricos que se utilizan en la descripción. En primer lugar, como todos sabéis, un ordenador sólo funciona con números del sistema binario, es decir, ceros y unos (“álgebra booleana”, si alguien la estudió en un instituto o escuela). , cada uno de los cuales es un dos elevado a la potencia, comenzando desde cero, y hasta dos elevado a la séptima:

No es difícil entender que todas las combinaciones posibles de ceros y unos en tal construcción solo pueden ser 256. Convertir un número del sistema binario al sistema decimal es bastante simple. Sólo necesitas sumar todas las potencias de dos con las que están por encima de ellas.

En nuestro ejemplo, esto resulta ser 1 (2 elevado a cero) más 8 (dos elevado a 3), más 32 (dos elevado a la quinta), más 64 (a la sexta potencia), más 128 (a la séptima potencia). El total es 233 en notación decimal. Como puedes ver, todo es muy sencillo.

Pero si miras de cerca la tabla con caracteres ASCII, verás que están representados en codificación hexadecimal. Por ejemplo, "asterisco" corresponde al número hexadecimal 2A en Aski. Probablemente sepa que en el sistema numérico hexadecimal, además de los números arábigos, también se utilizan letras latinas desde la A (significa diez) hasta la F (significa quince).

Pues bien, para convertir un número binario a hexadecimal recurra al siguiente método simple y obvio. Cada byte de información se divide en dos partes de cuatro bits, como se muestra en la captura de pantalla anterior. Eso. En cada medio byte, sólo se pueden codificar dieciséis valores (dos a la cuarta potencia) en binario, lo que se puede representar fácilmente como un número hexadecimal.

Además, en la mitad izquierda del byte será necesario volver a contar los grados empezando desde cero, y no como se muestra en la captura de pantalla. Como resultado, mediante cálculos simples, obtenemos que el número E9 está codificado en la captura de pantalla. Espero que el curso de mi razonamiento y la solución a este enigma te hayan quedado claros. Bueno, ahora sigamos, de hecho, hablando de codificaciones de texto.

Versiones extendidas de Asuka: codificaciones CP866 y KOI8-R con pseudografía

Entonces, comenzamos a hablar de ASCII, que fue, por así decirlo, el punto de partida para el desarrollo de todas las codificaciones modernas (Windows 1251, Unicode, UTF 8).

Inicialmente, contenía solo 128 caracteres del alfabeto latino, números arábigos y algo más, pero en la versión extendida fue posible utilizar los 256 valores que se pueden codificar en un byte de información. Aquellos. Se hizo posible agregar símbolos de letras de su idioma a Aski.

Aquí tendremos que hacer una digresión nuevamente para explicar: ¿Por qué necesitamos codificaciones? textos y por qué es tan importante. Los caracteres en la pantalla de su computadora se forman sobre la base de dos cosas: conjuntos de formas vectoriales (representaciones) de varios caracteres (están ubicados en archivos con ) y un código que le permite extraer de este conjunto de formas vectoriales (archivo de fuente ) exactamente el carácter que deberá insertarse en el lugar correcto.

Está claro que las fuentes mismas son responsables de las formas vectoriales, pero el sistema operativo y los programas utilizados en él son responsables de la codificación. Aquellos. cualquier texto en su computadora será un conjunto de bytes, cada uno de los cuales codifica un solo carácter de este mismo texto.

El programa que muestra este texto en la pantalla (editor de texto, navegador, etc.), al analizar el código, lee la codificación del siguiente carácter y busca la forma vectorial correspondiente en el archivo de fuente requerido, que está conectado para mostrar este documento de texto. Todo es simple y banal.

Esto significa que para codificar cualquier carácter que necesitemos (por ejemplo, del alfabeto nacional), se deben cumplir dos condiciones: la forma vectorial de este carácter debe estar en la fuente utilizada y este carácter podría codificarse en codificaciones ASCII extendidas en un byte. Por lo tanto, existen muchas opciones de este tipo. Sólo para codificar caracteres del idioma ruso, existen varias variedades de Aska extendido.

Por ejemplo, apareció originalmente CP866, que tenía la capacidad de utilizar caracteres del alfabeto ruso y era una versión extendida de ASCII.

Aquellos. su parte superior coincidía completamente con la versión básica de Aska (128 caracteres latinos, números y otras tonterías), que se presenta en la captura de pantalla justo arriba, pero la parte inferior de la tabla con codificación CP866 tenía la apariencia indicada en la captura de pantalla justo debajo e hizo posible codificar otros 128 signos (letras rusas y todo tipo de pseudografías):

Verás, en la columna de la derecha los números empiezan con 8, porque... Los números del 0 al 7 se refieren a la parte básica de ASCII (ver la primera captura de pantalla). Eso. la letra rusa "M" en CP866 tendrá el código 9C (se encuentra en la intersección de la fila correspondiente con 9 y la columna con el número C en el sistema numérico hexadecimal), que se puede escribir en un byte de información, y Si hay una fuente adecuada con caracteres rusos, esta letra aparecerá sin problemas en el texto.

¿De dónde salió esta cantidad? pseudografías en CP866? La cuestión es que esta codificación para texto en ruso se desarrolló en aquellos años difíciles en los que los sistemas operativos gráficos no estaban tan extendidos como lo están ahora. Y en Dosa y sistemas operativos de texto similares, los pseudográficos permitieron al menos diversificar de alguna manera el diseño de los textos y, por lo tanto, abundan en él CP866 y todos sus demás pares de la categoría de versiones extendidas de Asuka.

CP866 fue distribuido por IBM, pero además de esto, se desarrollaron varias codificaciones para los caracteres del idioma ruso, por ejemplo, se puede atribuir el mismo tipo (ASCII extendido). KOI8-R:

El principio de funcionamiento sigue siendo el mismo que el del CP866 descrito anteriormente: cada carácter de texto está codificado por un solo byte. La captura de pantalla muestra la segunda mitad de la mesa KOI8-R, porque La primera mitad es completamente consistente con la Asuka básica, que se muestra en la primera captura de pantalla de este artículo.

Entre las características de la codificación KOI8-R, cabe señalar que las letras rusas en su tabla no están en orden alfabético, como, por ejemplo, en CP866.

Si observa la primera captura de pantalla (de la parte básica, que se incluye en todas las codificaciones extendidas), notará que en KOI8-R las letras rusas se encuentran en las mismas celdas de la tabla que las letras correspondientes del alfabeto latino. de la primera parte de la tabla. Esto se hizo para facilitar el cambio de caracteres rusos a latinos descartando solo un bit (dos elevado a la séptima potencia o 128).

Windows 1251: la versión moderna de ASCII y por qué aparecen las grietas

El mayor desarrollo de las codificaciones de texto se debió al hecho de que los sistemas operativos gráficos estaban ganando popularidad y la necesidad de utilizar pseudográficos en ellos desapareció con el tiempo. Como resultado, surgió todo un grupo que, en esencia, seguían siendo versiones extendidas de Asuka (un carácter de texto está codificado con solo un byte de información), pero sin el uso de símbolos pseudográficos.

Pertenecían a las denominadas codificaciones ANSI, desarrolladas por el American Standards Institute. En el lenguaje común, el nombre cirílico también se utilizó para la versión compatible con el idioma ruso. Un ejemplo de esto sería.

Se diferenciaba favorablemente de los CP866 y KOI8-R utilizados anteriormente en que el lugar de los símbolos pseudográficos lo ocupaban los símbolos faltantes de la tipografía rusa (excepto el acento), así como los símbolos utilizados en lenguas eslavas cercanas a Ruso (ucraniano, bielorruso, etc.):

Debido a tal abundancia de codificaciones en idioma ruso, los fabricantes de fuentes y de software tenían constantemente dolores de cabeza, y ustedes y yo, queridos lectores, a menudo sufrimos esos mismos notorios krakozyabry cuando hubo confusión con la versión utilizada en el texto.

Muy a menudo aparecían al enviar y recibir mensajes por correo electrónico, lo que implicaba la creación de tablas de conversión muy complejas, que, de hecho, no podían resolver este problema fundamentalmente, y los usuarios a menudo recurrían a la correspondencia para evitar los notorios trucos al usar Codificaciones rusas como CP866, KOI8-R o Windows 1251.

De hecho, las grietas que aparecieron en lugar del texto ruso fueron el resultado de un uso incorrecto de la codificación de este idioma, que no correspondía a aquella en la que estaba codificado originalmente el mensaje de texto.

Digamos que si intenta mostrar caracteres codificados con CP866 usando la tabla de códigos de Windows 1251, aparecerán estos mismos galimatías (un conjunto de caracteres sin sentido), reemplazando completamente el texto del mensaje.

Una situación similar surge muy a menudo en foros o blogs, cuando el texto con caracteres rusos se guarda por error en la codificación incorrecta que se utiliza en el sitio de forma predeterminada, o en el editor de texto incorrecto, lo que agrega chistes al código que no son visibles para a simple vista.

Al final, mucha gente se cansó de esta situación con muchas codificaciones y delincuentes constantemente asustados, y aparecieron los requisitos previos para la creación de una nueva variación universal que reemplazaría a todas las existentes y finalmente resolvería el problema con la apariencia. de textos ilegibles. Además, estaba el problema de idiomas como el chino, donde había muchos más caracteres del idioma que 256.

Unicode: codificaciones universales UTF 8, 16 y 32

Estos miles de caracteres del grupo lingüístico del Sudeste Asiático no podrían describirse en un solo byte de información, que se destinó a codificar caracteres en versiones extendidas de ASCII. Como resultado, se creó un consorcio llamado Unicódigo(Unicode - Unicode Consortium) con la colaboración de muchos líderes de la industria de TI (aquellos que producen software, que codifican hardware, que crean fuentes), que estaban interesados ​​en el surgimiento de una codificación de texto universal.

La primera variación lanzada bajo los auspicios del Consorcio Unicode fue UTF 32. El número en el nombre de la codificación significa la cantidad de bits que se utilizan para codificar un carácter. 32 bits equivalen a 4 bytes de información que serán necesarios para codificar un solo carácter en la nueva codificación universal UTF.

Como resultado, un mismo archivo con texto codificado en la versión extendida de ASCII y en UTF-32, en este último caso, tendrá un tamaño (peso) cuatro veces mayor. Esto es malo, pero ahora tenemos la oportunidad de codificar usando YTF una cantidad de caracteres igual a dos elevado a la potencia de treinta segundos ( miles de millones de caracteres, que cubrirá cualquier valor realmente necesario con un margen colosal).

Pero muchos países con idiomas del grupo europeo no necesitaban usar una cantidad tan grande de caracteres en la codificación, sin embargo, al usar UTF-32, sin ningún motivo recibieron un aumento de cuatro veces en el peso de los documentos de texto. y como resultado, un aumento en el volumen de tráfico de Internet y en el volumen de datos almacenados. Esto es mucho y nadie podría permitirse ese desperdicio.

Como resultado del desarrollo de Unicode, UTF-16, que resultó tener tanto éxito que se adoptó por defecto como espacio base para todos los caracteres que utilizamos. Utiliza dos bytes para codificar un carácter. Veamos cómo se ve esto.

En el sistema operativo Windows, puede seguir la ruta “Inicio” - “Programas” - “Accesorios” - “Herramientas del sistema” - “Tabla de caracteres”. Como resultado, se abrirá una tabla con las formas vectoriales de todas las fuentes instaladas en su sistema. Si selecciona el conjunto de caracteres Unicode en las “Opciones avanzadas”, podrá ver para cada fuente por separado toda la gama de caracteres incluidos en ella.

Por cierto, al hacer clic en cualquiera de ellos, puedes ver sus dos bytes. código en formato UTF-16, que consta de cuatro dígitos hexadecimales:

¿Cuántos caracteres se pueden codificar en UTF-16 usando 16 bits? 65.536 (dos elevado a dieciséis), y este es el número que se adoptó como espacio base en Unicode. Además, existen formas de codificar alrededor de dos millones de caracteres usándolo, pero estaban limitadas a un espacio ampliado de un millón de caracteres de texto.

Pero incluso esta versión exitosa de la codificación Unicode no trajo mucha satisfacción a quienes escribieron, digamos, programas solo en inglés, porque para ellos, después de la transición de la versión extendida de ASCII a UTF-16, el peso de los documentos se duplicó ( un byte por carácter en Aski y dos bytes por el mismo carácter en YUTF-16).

Fue precisamente para satisfacer a todos y a todo en el consorcio Unicode que se decidió idear codificación de longitud variable. Se llamó UTF-8. A pesar del ocho en el nombre, en realidad tiene una longitud variable, es decir. Cada carácter de texto se puede codificar en una secuencia de uno a seis bytes de longitud.

En la práctica, UTF-8 sólo utiliza el rango de uno a cuatro bytes, porque más allá de cuatro bytes de código ya no es posible imaginar nada en teoría. Todos los caracteres latinos que contiene están codificados en un byte, como en el antiguo ASCII.

Lo que es digno de mención es que en el caso de codificar solo el alfabeto latino, incluso aquellos programas que no entienden Unicode seguirán leyendo lo que está codificado en YTF-8. Aquellos. la parte central de Asuka simplemente fue transferida a esta creación del consorcio Unicode.

Los caracteres cirílicos en UTF-8 están codificados en dos bytes y, por ejemplo, los caracteres georgianos están codificados en tres bytes. El Consorcio Unicode, después de crear UTF 16 y 8, resolvió el problema principal: ahora tenemos las fuentes tienen un solo espacio de código. Y ahora sus fabricantes sólo pueden llenarlo con formas vectoriales de caracteres de texto en función de sus puntos fuertes y capacidades. Ahora incluso vienen en juegos.

En la "Tabla de caracteres" de arriba, puede ver que diferentes fuentes admiten diferentes números de caracteres. Algunas fuentes ricas en Unicode pueden ser bastante pesadas. Pero ahora se diferencian no en el hecho de que fueron creados para diferentes codificaciones, sino en el hecho de que el fabricante de la fuente llenó o no completamente el espacio de código único con ciertas formas vectoriales.

Palabras locas en lugar de letras rusas: cómo solucionarlo

Veamos ahora cómo aparecen krakozyabrs en lugar de texto o, en otras palabras, cómo se selecciona la codificación correcta para el texto en ruso. En realidad, se establece en el programa en el que crea o edita este mismo texto o código utilizando fragmentos de texto.

Para editar y crear archivos de texto, personalmente uso un muy bueno, en mi opinión, . Sin embargo, puede resaltar la sintaxis de cientos de otros lenguajes de programación y marcado, y también tiene la capacidad de ampliarse mediante complementos. Lea una reseña detallada de este maravilloso programa en el enlace proporcionado.

En el menú superior de Notepad++ hay un elemento "Codificaciones", donde tendrá la oportunidad de convertir una opción existente a la utilizada de forma predeterminada en su sitio:

En el caso de un sitio en Joomla 1.5 y superior, así como en el caso de un blog en WordPress, debes elegir la opción para evitar la aparición de grietas. UTF 8 sin lista de materiales. ¿Qué es el prefijo BOM?

El hecho es que cuando estaban desarrollando la codificación YUTF-16, por alguna razón decidieron adjuntarle la capacidad de escribir el código de caracteres tanto en secuencia directa (por ejemplo, 0A15) como a la inversa (150A). . Y para que los programas comprendan exactamente en qué secuencia leer los códigos, se inventó lista de materiales(Marca de orden de bytes o, en otras palabras, firma), que se expresó agregando tres bytes adicionales al comienzo de los documentos.

En la codificación UTF-8, no se proporcionaron BOM en el consorcio Unicode y, por lo tanto, agregar una firma (esos notorios tres bytes adicionales al comienzo del documento) simplemente evita que algunos programas lean el código. Por tanto, a la hora de guardar archivos en UTF, siempre debemos seleccionar la opción sin BOM (sin firma). Entonces estas adelantado protéjase de los krakozyabrs rastreros.

Lo que es digno de mención es que algunos programas en Windows no pueden hacer esto (no pueden guardar texto en UTF-8 sin una lista de materiales), por ejemplo, el mismo Bloc de notas de Windows. Guarda el documento en UTF-8, pero aún agrega la firma (tres bytes adicionales) al principio. Además, estos bytes siempre serán los mismos: lea el código en secuencia directa. Pero en los servidores, debido a esta pequeña cosa, puede surgir un problema: saldrán delincuentes.

Por lo tanto, bajo ninguna circunstancia No utilices el bloc de notas normal de Windows para editar documentos en su sitio si no desea que aparezcan grietas. Considero que la mejor y más sencilla opción es el editor Notepad++ ya mencionado, que prácticamente no tiene inconvenientes y sólo tiene ventajas.

En Notepad++, cuando selecciona una codificación, tendrá la opción de convertir texto a codificación UCS-2, que es muy similar al estándar Unicode. También en el Bloc de notas será posible codificar texto en ANSI, es decir. En relación al idioma ruso, este será Windows 1251, que ya hemos descrito anteriormente. ¿De dónde viene esta información?

Está registrado en el registro de su sistema operativo Windows: qué codificación elegir en el caso de ANSI, cuál elegir en el caso de OEM (para el idioma ruso será CP866). Si instala otro idioma predeterminado en su computadora, estas codificaciones serán reemplazadas por otras similares de la categoría ANSI u OEM para ese mismo idioma.

Después de guardar el documento en Notepad++ con la codificación que necesita o abrir el documento desde el sitio para editarlo, podrá ver su nombre en la esquina inferior derecha del editor:

Para evitar a los paletos Además de las acciones descritas anteriormente, será útil incluir información sobre esta codificación en el encabezado del código fuente de todas las páginas del sitio para que no haya confusión en el servidor o host local.

En general, todos los lenguajes de marcado de hipertexto, excepto HTML, utilizan una declaración xml especial, que especifica la codificación del texto.

Antes de analizar el código, el navegador sabe qué versión se está utilizando y exactamente cómo debe interpretar los códigos de caracteres de ese idioma. Pero lo que es digno de mención es que si guarda el documento en el Unicode predeterminado, entonces esta declaración xml se puede omitir (la codificación se considerará UTF-8 si no hay una BOM o UTF-16 si hay una BOM).

En el caso de un documento en lenguaje HTML, la codificación se utiliza para indicar metaelemento, que está escrito entre las etiquetas Head de apertura y cierre:

... ...

Esta entrada es bastante diferente de la adoptada en, pero es totalmente compatible con el nuevo estándar Html 5 que se está introduciendo gradualmente, y cualquier navegador utilizado actualmente la entenderá correctamente.

En teoría, sería mejor colocar un elemento Meta que indique la codificación del documento HTML. lo más alto posible en el encabezado del documento de modo que en el momento de encontrar el primer carácter en el texto que no sea del ANSI básico (que siempre se leen correctamente y en cualquier variación), el navegador ya debería tener información sobre cómo interpretar los códigos de estos caracteres.

¡Buena suerte para ti! Nos vemos pronto en las páginas del blog.

Puedes ver más vídeos entrando a
");">

Quizás te interese

¿Qué son las direcciones URL? ¿En qué se diferencian los enlaces absolutos y relativos de un sitio?
OpenServer: un servidor local moderno y un ejemplo de cómo usarlo para instalar WordPress en una computadora
Qué es Chmod, qué permisos asignar a archivos y carpetas (777, 755, 666) y cómo hacerlo vía PHP
Búsqueda de Yandex por sitio y tienda en línea

Unicode (Unicode en inglés) es un estándar de codificación de caracteres. En pocas palabras, esta es una tabla de correspondencia entre caracteres de texto ( , letras, elementos de puntuación) códigos binarios. La computadora sólo entiende la secuencia de ceros y unos. Para que sepa exactamente qué debe mostrar en la pantalla, es necesario asignar a cada símbolo su propio número único. En los años ochenta los caracteres se codificaban en un byte, es decir, ocho bits (cada bit es un 0 o un 1). Por lo tanto, resultó que una tabla (también conocida como codificación o conjunto) solo puede contener 256 caracteres. Puede que esto no sea suficiente ni siquiera para un idioma. Por lo tanto, aparecieron muchas codificaciones diferentes, cuya confusión a menudo llevaba a que aparecieran en la pantalla algún galimatías extraño en lugar de texto legible. Se necesitaba un estándar único, y en eso se convirtió Unicode. La codificación más utilizada es UTF-8 (Formato de transformación Unicode), que utiliza de 1 a 4 bytes para representar un carácter.

Símbolos

Los caracteres de las tablas Unicode están numerados con números hexadecimales. Por ejemplo, la letra mayúscula cirílica M se denomina U+041C. Esto significa que se encuentra en la intersección de la fila 041 y la columna C. Puedes simplemente copiarlo y luego pegarlo en algún lugar. Para no hurgar en una lista de varios kilómetros, conviene utilizar la búsqueda. Cuando vaya a la página de símbolos, verá su número Unicode y la forma en que está escrito en diferentes fuentes. Puedes ingresar el signo en la barra de búsqueda, incluso si en su lugar se dibuja un cuadrado, al menos para saber qué era. Además, en este sitio hay conjuntos especiales (y aleatorios) del mismo tipo de íconos, recopilados de diferentes secciones, para facilitar su uso.

El estándar Unicode es internacional. Incluye personajes de casi todos los guiones del mundo. Incluidos aquellos que ya no se utilizan. Jeroglíficos egipcios, runas germánicas, escritura maya, cuneiformes y alfabetos de estados antiguos. También se presentan designaciones de pesos y medidas, notación musical y conceptos matemáticos.

El Consorcio Unicode por sí solo no inventa nuevos caracteres. Aquellos íconos que encuentran su uso en la sociedad se agregan a las tablas. Por ejemplo, el signo del rublo se utilizó activamente durante seis años antes de que se agregara a Unicode. Los pictogramas emoji (emoticones) también se utilizaron ampliamente por primera vez en Japón antes de que se incluyeran en la codificación. Pero, en principio, no se añaden marcas comerciales ni logotipos de empresas. Incluso algunos tan comunes como la manzana de Apple o la bandera de Windows. Hasta la fecha, se han codificado unos 120 mil caracteres en la versión 8.0.

Como sabes, una computadora almacena información en forma binaria, representándola como una secuencia de unos y ceros. Para traducir la información a una forma conveniente para la percepción humana, cada secuencia única de números se reemplaza por su símbolo correspondiente cuando se muestra.

Uno de los sistemas para correlacionar códigos binarios con caracteres impresos y de control es

En el nivel actual de desarrollo de la tecnología informática, no es necesario que el usuario conozca el código de cada carácter específico. Sin embargo, una comprensión general de cómo se lleva a cabo la codificación es extremadamente útil y, para algunas categorías de especialistas, incluso necesaria.

Creando ASCII

La codificación se desarrolló originalmente en 1963 y luego se actualizó dos veces a lo largo de 25 años.

En la versión original, la tabla de caracteres ASCII incluía 128 caracteres; luego apareció una versión extendida, donde se guardaron los primeros 128 caracteres y los caracteres que antes faltaban se asignaron a códigos con el octavo bit involucrado.

Durante muchos años, esta codificación fue la más popular del mundo. En 2006, Latin 1252 tomó la posición de liderazgo y, desde finales de 2007 hasta la actualidad, Unicode ha mantenido firmemente la posición de liderazgo.

Representación informática de ASCII

Cada carácter ASCII tiene su propio código, que consta de 8 caracteres que representan un cero o un uno. El número mínimo en esta representación es cero (ocho ceros en el sistema binario), que es el código del primer elemento de la tabla.

Se reservaron dos códigos de la tabla para cambiar entre el estándar US-ASCII y su variante nacional.

Después de que ASCII comenzó a incluir no 128, sino 256 caracteres, se generalizó una variante de codificación, en la que la versión original de la tabla se almacenaba en los primeros 128 códigos con el octavo bit cero. Los caracteres escritos nacionales se almacenaron en la mitad superior de la tabla (posiciones 128-255).

El usuario no necesita conocer directamente los códigos de caracteres ASCII. Por lo general, un desarrollador de software solo necesita saber el número de elemento en la tabla para calcular su código usando el sistema binario si es necesario.

idioma ruso

Después del desarrollo de codificaciones para las lenguas escandinavas, chino, coreano, griego, etc. a principios de los años 70, la Unión Soviética comenzó a crear su propia versión. Pronto, se desarrolló una versión de una codificación de 8 bits llamada KOI8, conservando los primeros 128 códigos de caracteres ASCII y asignando el mismo número de posiciones para las letras del alfabeto nacional y caracteres adicionales.

Antes de la introducción de Unicode, KOI8 dominaba el segmento ruso de Internet. Había opciones de codificación tanto para el alfabeto ruso como para el ucraniano.

problemas ASCII

Dado que el número de elementos incluso en la tabla extendida no excedía los 256, no era posible acomodar varios scripts diferentes en una codificación. En los años 90, apareció en Runet el problema "crocozyabr", cuando los textos escritos en caracteres rusos ASCII se mostraban incorrectamente.

El problema era que los distintos códigos ASCII no coincidían entre sí. Recordemos que en las posiciones 128-255 se podían ubicar varios caracteres, y al cambiar una codificación cirílica a otra, todas las letras del texto se reemplazaban por otras que tenían el mismo número en una versión diferente de la codificación.

Estado actual

Con la llegada de Unicode, la popularidad de ASCII comenzó a declinar drásticamente.

La razón de esto radica en el hecho de que la nueva codificación hizo posible acomodar caracteres de casi todos los idiomas escritos. En este caso, los primeros 128 caracteres ASCII corresponden a los mismos caracteres en Unicode.

En 2000, ASCII era la codificación más popular en Internet y se utilizaba en el 60% de las páginas web indexadas por Google. En 2012, la proporción de páginas de este tipo había caído al 17% y Unicode (UTF-8) ocupó el lugar de la codificación más popular.

Por tanto, ASCII es una parte importante de la historia de la tecnología de la información, pero su uso en el futuro parece poco prometedor.

Una computadora comprende el proceso de convertirlos en una forma que permita una transmisión, almacenamiento o procesamiento automático más conveniente de estos datos. Para ello se utilizan varias tablas. ASCII fue el primer sistema desarrollado en Estados Unidos para trabajar con textos en inglés, que posteriormente se generalizó por todo el mundo. El siguiente artículo está dedicado a su descripción, características, propiedades y uso posterior.

Visualización y almacenamiento de información en una computadora.

Los símbolos en el monitor de una computadora o en uno u otro dispositivo digital móvil se forman sobre la base de conjuntos de formas vectoriales de varios caracteres y un código que le permite encontrar entre ellos el símbolo que debe insertarse en el lugar correcto. Representa una secuencia de bits. Por lo tanto, cada carácter debe corresponder de forma única a un conjunto de ceros y unos, que aparecen en un orden determinado y único.

Como empezó todo

Históricamente, las primeras computadoras eran de idioma inglés. Para codificar información simbólica en ellos, fue suficiente usar solo 7 bits de memoria, mientras que para este propósito se asignó 1 byte que consta de 8 bits. El número de caracteres comprendidos por la computadora en este caso fue 128. Estos caracteres incluían el alfabeto inglés con sus signos de puntuación, números y algunos caracteres especiales. La codificación de siete bits en inglés con la tabla correspondiente (página de códigos), desarrollada en 1963, se denominó Código estándar estadounidense para el intercambio de información. Por lo general, la abreviatura "codificación ASCII" se utilizaba y se sigue utilizando para indicarlo.

Transición al multilingüismo

Con el tiempo, las computadoras se volvieron ampliamente utilizadas en países de habla no inglesa. En este sentido, existía la necesidad de codificaciones que permitieran el uso de idiomas nacionales. Se decidió no reinventar la rueda y tomar como base ASCII. La tabla de codificación en la nueva edición se ha ampliado significativamente. El uso del octavo bit hizo posible traducir 256 caracteres a un lenguaje informático.

Descripción

La codificación ASCII tiene una tabla que se divide en 2 partes. Sólo su primera mitad se considera una norma internacional generalmente aceptada. Incluye:

  • Caracteres con números de serie del 0 al 31, codificados en secuencias del 00000000 al 00011111. Están reservados para caracteres de control que controlan el proceso de visualización de texto en pantalla o impresora, emisión de una señal sonora, etc.
  • Los caracteres con NN en la tabla del 32 al 127, codificados por secuencias del 00100000 al 01111111 forman la parte estándar de la tabla. Estos incluyen espacios (N 32), letras del alfabeto latino (minúsculas y mayúsculas), números de diez dígitos del 0 al 9, signos de puntuación, corchetes de diferentes estilos y otros símbolos.
  • Caracteres con números de serie del 128 al 255, codificados por secuencias del 10000000 al 11111111. Estos incluyen letras de alfabetos nacionales distintos del latín. Es esta parte alternativa de la tabla ASCII la que se utiliza para convertir caracteres rusos al formato informático.

Algunas propiedades

Las características de la codificación ASCII incluyen la diferencia entre las letras “A” - “Z” de minúsculas y mayúsculas en solo un bit. Esta circunstancia simplifica enormemente la conversión de registros, además de comprobar si pertenece a un rango de valores determinado. Además, todas las letras del sistema de codificación ASCII están representadas por sus propios números de secuencia en el alfabeto, que se escriben con 5 dígitos en el sistema numérico binario, precedidos por 011 2 para letras minúsculas y 010 2 para letras mayúsculas.

Entre las características de la codificación ASCII se encuentra la representación de 10 dígitos: “0” - “9”. En el segundo sistema numérico comienzan con 00112 y terminan con 2 valores numéricos. Por lo tanto, 0101 2 es equivalente al número decimal cinco, por lo que el carácter "5" se escribe como 0011 01012. Con base en lo anterior, puede convertir fácilmente números BCD en una cadena ASCII agregando la secuencia de bits 00112 a cada cuarteto en el izquierda.

"Unicode"

Como sabes, se necesitan miles de caracteres para mostrar textos en los idiomas del grupo del sudeste asiático. Tantos de ellos no pueden describirse de ninguna manera en un byte de información, por lo que ni siquiera las versiones ampliadas de ASCII podrían satisfacer las crecientes necesidades de los usuarios de diferentes países.

Por lo tanto, surgió la necesidad de crear una codificación de texto universal, cuyo desarrollo, en colaboración con muchos líderes de la industria mundial de TI, fue realizado por el consorcio Unicode. Sus especialistas crearon el sistema UTF 32. En él se asignaron 32 bits para codificar 1 carácter, lo que constituye 4 bytes de información. La principal desventaja fue un fuerte aumento en la cantidad de memoria requerida hasta 4 veces, lo que generó muchos problemas.

Al mismo tiempo, para la mayoría de los países con lenguas oficiales pertenecientes al grupo indoeuropeo, el número de caracteres igual a 2 32 es más que excesivo.

Como resultado del trabajo adicional de los especialistas del consorcio Unicode, apareció la codificación UTF-16. Se convirtió en la opción para convertir información simbólica que se adaptaba a todos, tanto en términos de cantidad de memoria requerida como de número de caracteres codificados. Es por eso que se adoptó UTF-16 de forma predeterminada y requiere reservar 2 bytes para un carácter.

Incluso esta versión bastante avanzada y exitosa de Unicode tenía algunos inconvenientes, y después de la transición de la versión extendida de ASCII a UTF-16, el peso del documento se duplicó.

En este sentido, se decidió utilizar codificación de longitud variable UTF-8. En este caso, cada carácter del texto fuente se codifica como una secuencia de longitud de 1 a 6 bytes.

Póngase en contacto con el código estándar americano para el intercambio de información.

Todos los caracteres latinos de longitud variable UTF-8 están codificados en 1 byte, como en el sistema de codificación ASCII.

Una característica especial de YTF-8 es que en el caso de texto en latín sin utilizar otros caracteres, incluso los programas que no entienden Unicode podrán leerlo. En otras palabras, la codificación de texto ASCII base simplemente pasa a formar parte del nuevo UTF de longitud variable. Los caracteres cirílicos en YTF-8 ocupan 2 bytes y, por ejemplo, los caracteres georgianos, 3 bytes. Al crear UTF-16 y 8, se resolvió el principal problema de crear un espacio de código único en las fuentes. Desde entonces, los fabricantes de fuentes sólo pueden llenar la tabla con formas vectoriales de caracteres de texto según sus necesidades.

Los diferentes sistemas operativos prefieren diferentes codificaciones. Para poder leer y editar textos escritos en una codificación diferente, se utilizan programas de conversión de textos en ruso. Algunos editores de texto contienen transcodificadores integrados y le permiten leer texto independientemente de la codificación.

Ahora ya sabes cuántos caracteres hay en la codificación ASCII y cómo y por qué se desarrolló. Por supuesto, hoy en día el estándar Unicode es el más extendido en el mundo. Sin embargo, no debemos olvidar que está basado en ASCII, por lo que se debe agradecer el aporte de sus desarrolladores al campo TI.

Dic Maleficio Símbolo Dic Maleficio Símbolo
000 00 especialista. NOP 128 80 Ђ
001 01 especialista. SOL 129 81 Ѓ
002 02 especialista. STX 130 82
003 03 especialista. ETX 131 83 ѓ
004 04 especialista. EOT 132 84
005 05 especialista. ENQ 133 85
006 06 especialista. ACK 134 86
007 07 especialista. BEL 135 87
008 08 especialista. BS 136 88
009 09 especialista. PESTAÑA 137 89
010 0Aespecialista. LF 138 8AЉ
011 0Bespecialista. Vermont 139 8B‹ ‹
012 0Cespecialista. FF 140 8CЊ
013 0Despecialista. CR 141 8DЌ
014 0Eespecialista. ENTONCES 142 8EЋ
015 0Fespecialista. SI. 143 8FЏ
016 10 especialista. DLE 144 90 ђ
017 11 especialista. DC1 145 91
018 12 especialista. DC2 146 92
019 13 especialista. DC3 147 93
020 14 especialista. DC4 148 94
021 15 especialista. N.A.K. 149 95
022 16 especialista. SINC 150 96
023 17 especialista. ETB 151 97
024 18 especialista. PODER 152 98
025 19 especialista. E. M. 153 99
026 1Aespecialista. SUB 154 9Aљ
027 1Bespecialista. ESC 155 9B
028 1Cespecialista. FS 156 9Cњ
029 1Despecialista. G.S. 157 9Dќ
030 1Eespecialista. R.S. 158 9Eћ
031 1Fespecialista. A NOSOTROS 159 9Fџ
032 20 embrague SP (espacio) 160 A0
033 21 ! 161 A1 Ў
034 22 " 162 A2ў
035 23 # 163 A3Ћ
036 24 $ 164 A4¤
037 25 % 165 A5Ґ
038 26 & 166 A6¦
039 27 " 167 A7§
040 28 ( 168 A8yo
041 29 ) 169 A9©
042 2A* 170 AUTOMÓVIL CLUB BRITÁNICO.Є
043 2B+ 171 AB«
044 2C, 172 C.A.¬
045 2D- 173 ANUNCIO­
046 2E. 174 A.E.®
047 2F/ 175 A. F.Ї
048 30 0 176 B0°
049 31 1 177 B1±
050 32 2 178 B2І
051 33 3 179 B3і
052 34 4 180 B4ґ
053 35 5 181 B5µ
054 36 6 182 B6
055 37 7 183 B7·
056 38 8 184 B8mi
057 39 9 185 B9
058 3A: 186 LICENCIADO EN LETRAS.є
059 3B; 187 CAMA Y DESAYUNO»
060 3C< 188 antes de Cristoј
061 3D= 189 BDЅ
062 3E> 190 SERѕ
063 3F? 191 B.F.ї
064 40 @ 192 C0 A
065 41 A 193 C1 B
066 42 B 194 C2 EN
067 43 do 195 C3 GRAMO
068 44 D 196 C4 D
069 45 mi 197 C5 mi
070 46 F 198 C6 Y
071 47 GRAMO 199 C7 z
072 48 h 200 C8 Y
073 49 I 201 C9 Y
074 4Aj 202 CALIFORNIA. A
075 4Bk 203 C.B. l
076 4Cl 204 CC METRO
077 4DMETRO 205 CD norte
078 4Enorte 206 CE ACERCA DE
079 4Foh 207 FQ PAG
080 50 PAG 208 D0 R
081 51 q 209 D1 CON
082 52 R 210 D2 t
083 53 S 211 D3 Ud.
084 54 t 212 D4 F
085 55 Ud. 213 D5 incógnita
086 56 V 214 D6 do
087 57 W. 215 D7 h
088 58 incógnita 216 D8 sh
089 59 Y 217 D9 SCH
090 5Az 218 DA Kommersant
091 5B[ 219 D. B. Y
092 5C\ 220 corriente continua b
093 5D] 221 DD mi
094 5E^ 222 Delaware Yu
095 5F_ 223 DF I
096 60 ` 224 E0 A
097 61 a 225 E1 b
098 62 b 226 E2 V
099 63 do 227 E3 GRAMO
100 64 d 228 E4 d
101 65 mi 229 E5 mi
102 66 F 230 E6 y
103 67 gramo 231 E7 h
104 68 h 232 E8 Y
105 69 i 233 E9 th
106 6Aj 234 E.A. A
107 6Bk 235 E.B. yo
108 6Cyo 236 CE. metro
109 6Dmetro 237 DE norte
110 6Enorte 238 E.E. oh
111 6Foh 239 E.F. norte
112 70 pag 240 F0 r
113 71 q 241 F1 Con
114 72 r 242 F2 t
115 73 s 243 F3 en
116 74 t 244 F4 F
117 75 tu 245 F5 incógnita
118 76 v 246 F6 ts
119 77 w 247 F7 h
120 78 incógnita 248 F8 w
121 79 y 249 F9 sch
122 7Az 250 FA. ъ
123 7B{ 251 pensión completa s
124 7C| 252 FC b
125 7D} 253 FD oh
126 7E~ 254 F.E. yu
127 7FEspecialista. DEL 255 FF I

Tabla de códigos de caracteres ASCII de Windows.
Descripción de caracteres especiales (de control)

Cabe señalar que los caracteres de control de la tabla ASCII se utilizaron originalmente para garantizar el intercambio de datos mediante teletipo, la entrada de datos desde cinta perforada y para el control sencillo de dispositivos externos.
Actualmente, la mayoría de los caracteres de control de tablas ASCII ya no llevan esta carga y pueden usarse para otros fines.
Código Descripción
NULO, 00Nulo, vacío
SOH, 01Inicio del rumbo
STX, 02Inicio de TeXt, el comienzo del texto.
ETX, 03Fin del texto, fin del texto
EOT, 04Fin de transmisión, fin de transmisión
ENQ, 05Preguntar. Por favor confirme
ACK, 06Reconocimiento. lo confirmo
bel, 07campana, llama
Licenciatura, 08Retroceso, retroceder un carácter
Pestaña, 09Pestaña, pestaña horizontal
LF, 0AAvance de línea, avance de línea.
Hoy en día en la mayoría de los lenguajes de programación se denota como \n
TV, 0BPestaña vertical, tabulación vertical.
FF, 0CAvance de formulario, avance de página, nueva página
CR, 0DRetorno de carro, retorno de carro.
Hoy en día en la mayoría de los lenguajes de programación se denota como \r
Entonces, 0EShift Out, cambia el color de la cinta de tinta en el dispositivo de impresión
SI,0FShift In, devuelve el color de la cinta de tinta al dispositivo de impresión.
DLE, 10Data Link Escape, cambiando el canal a transmisión de datos
DC1, 11
DC2, 12
CD3, 13
CD4, 14
Control de dispositivos, símbolos de control de dispositivos
NAK, 15Reconocimiento Negativo, no confirmo.
SINC, 16Sincronización. Símbolo de sincronización
ETB, 17Fin del bloque de texto, fin del bloque de texto
CAN, 18Cancelar, cancelar transferido previamente
EM, 19Fin del medio
SUB, 1ASustituto, sustituto.
Colocado en lugar de un símbolo cuyo significado se perdió o se corrompió durante la transmisión.ESC, 1B
Secuencia de control de escapeFS, 1C
Separador de archivos, separador de archivosGS, 1D
Separador de grupoRS, 1E
Separador de registros, separador de registrosEE.UU., 1P
Separador de unidadesDEL, 7F



Arriba