caracteres de control ascii. Codificación ASCII (código estándar americano para el intercambio de información): codificación de texto básica para el alfabeto latino
Según la Unión Internacional de Telecomunicaciones, en 2016, tres mil quinientos millones de personas utilizaron Internet con cierta regularidad. La mayoría de ellos ni siquiera piensan en el hecho de que los mensajes que envían a través de una PC o dispositivos móviles, así como los textos que se muestran en todo tipo de monitores, son en realidad combinaciones de 0 y 1. Esta representación de información se llama codificación. . Asegura y facilita enormemente su almacenamiento, procesamiento y transmisión. En 1963, se desarrolló la codificación estadounidense ASCII, que es el tema de este artículo.
Presentar información en una computadora.
Desde el punto de vista de cualquier computadora electrónica, el texto es un conjunto de caracteres individuales. Estos incluyen no solo letras, incluidas las mayúsculas, sino también signos de puntuación y números. Además, se utilizan caracteres especiales “=”, “&”, “(” y espacios.
El conjunto de caracteres que componen el texto se llama alfabeto y su número se llama cardinalidad (denotado como N). Para determinarlo se utiliza la expresión N = 2^b, donde b es el número de bits o el peso de la información de un símbolo en particular.
Se ha demostrado que un alfabeto con una capacidad de 256 caracteres puede representar todos los caracteres necesarios.
Dado que 256 representa la octava potencia de dos, el peso de cada carácter es de 8 bits.
Una unidad de medida de 8 bits se llama 1 byte, por lo que se acostumbra decir que cualquier carácter de texto almacenado en una computadora ocupa un byte de memoria.
¿Cómo se hace la codificación?
Cualquier texto se ingresa en la memoria de una computadora personal utilizando las teclas del teclado en las que se escriben números, letras, signos de puntuación y otros símbolos. Se transfieren a la RAM en código binario, es decir, cada carácter está asociado con un código decimal familiar para los humanos, de 0 a 255, que corresponde a un código binario, de 00000000 a 11111111.
La codificación de caracteres byte-byte permite al procesador que realiza el procesamiento de texto acceder a cada carácter individualmente. Al mismo tiempo, 256 caracteres son suficientes para representar cualquier información simbólica.
Codificación de caracteres ASCII
Esta abreviatura en inglés significa código para intercambio de información.
Incluso en los albores de la informatización, se hizo evidente que era posible idear una amplia variedad de formas de codificar la información. Sin embargo, para transferir información de una computadora a otra, fue necesario desarrollar un estándar unificado. Entonces, en 1963, apareció la tabla de codificación ASCII en los EE. UU. En él, cualquier símbolo del alfabeto informático está asociado a su número de serie en representación binaria. ASCII se utilizó originalmente sólo en los Estados Unidos y luego se convirtió en un estándar internacional para PC.
Los códigos ASCII se dividen en 2 partes. Sólo la primera mitad de esta tabla se considera el estándar internacional. Incluye caracteres con números de serie del 0 (codificado como 00000000) al 127 (codificado 01111111).
Número de serie | Codificación de texto ASCII | Símbolo |
0000 0000 - 0001 1111 | Los caracteres con N de 0 a 31 se denominan caracteres de control. Su función es "gestionar" el proceso de visualización de texto en un monitor o dispositivo de impresión, emitiendo una señal sonora, etc. |
|
0010 0000 - 0111 1111 | Caracteres de N del 32 al 127 (parte estándar de la tabla): letras mayúsculas y minúsculas del alfabeto latino, décimos dígitos, signos de puntuación, así como varios corchetes, símbolos comerciales y otros. El carácter 32 representa un espacio. |
|
1000 0000 - 1111 1111 | Los caracteres con N del 128 al 255 (parte alternativa de la tabla o página de códigos) pueden tener diferentes variantes, cada una de las cuales tiene su propio número. La página de códigos se utiliza para especificar alfabetos nacionales que son diferentes del latín. En particular, es con su ayuda que se realiza la codificación ASCII de caracteres rusos. |
En la tabla, las codificaciones están en mayúscula y se suceden en orden alfabético, y los números están en orden ascendente. Este principio sigue siendo el mismo para el alfabeto ruso.
personajes de control
La tabla de codificación ASCII se creó originalmente para recibir y transmitir información a través de un dispositivo que no se ha utilizado durante mucho tiempo, como un teletipo. En este sentido, se incluyeron caracteres no imprimibles en el conjunto de caracteres, utilizados como comandos para controlar este dispositivo. Se utilizaron comandos similares en métodos de mensajería anteriores a la computadora, como el código Morse, etc.
El carácter de teletipo más común es NUL (00). Todavía se utiliza hoy en día en la mayoría de los lenguajes de programación para indicar el final de una línea.
¿Dónde se utiliza la codificación ASCII?
El Código Estándar Americano es necesario no solo para ingresar información de texto en el teclado. También se utiliza en gráficos. En particular, en ASCII Art Maker, las imágenes de las distintas extensiones representan un espectro de caracteres ASCII.
Hay dos tipos de productos de este tipo: los que realizan la función de editores gráficos al convertir imágenes en texto y los que convierten "dibujos" en gráficos ASCII. Por ejemplo, el famoso emoticón es un excelente ejemplo de símbolo codificado.
ASCII también se puede utilizar al crear un documento HTML. En este caso, puede ingresar un determinado conjunto de caracteres y, al visualizar la página, aparecerá en la pantalla un símbolo que corresponde a este código.
ASCII también es necesario para crear sitios web multilingües, ya que los caracteres que no están incluidos en una tabla nacional específica se reemplazan por códigos ASCII.
Algunas caracteristicas
ASCII se usó originalmente para codificar información de texto usando 7 bits (uno se dejó en blanco), pero hoy funciona como 8 bits.
Las letras ubicadas en las columnas ubicadas arriba y abajo se diferencian entre sí en un solo bit. Esto reduce significativamente la complejidad de la auditoría.
Usando ASCII en Microsoft Office
Si es necesario, este tipo de codificación de información de texto se puede utilizar en editores de texto de Microsoft como el Bloc de notas y Office Word. Sin embargo, es posible que no pueda utilizar algunas funciones al escribir en este caso. Por ejemplo, no podrás utilizar texto en negrita porque la codificación ASCII sólo conserva el significado de la información, ignorando su apariencia y forma generales.
Estandarización
La organización ISO ha adoptado los estándares ISO 8859. Este grupo define codificaciones de ocho bits para diferentes grupos de idiomas. Específicamente, ISO 8859-1 es una tabla ASCII extendida para los Estados Unidos y los países de Europa occidental. E ISO 8859-5 es una tabla utilizada para el alfabeto cirílico, incluido el idioma ruso.
Por diversas razones históricas, la norma ISO 8859-5 se utilizó durante muy poco tiempo.
Para el idioma ruso, actualmente se utilizan las siguientes codificaciones:
- CP866 (página de códigos 866) o DOS, que a menudo se denomina codificación GOST alternativa. Se utilizó activamente hasta mediados de los años 90 del siglo pasado. Actualmente prácticamente no se utiliza.
- KOI-8. La codificación se desarrolló en las décadas de 1970 y 1980 y actualmente es el estándar generalmente aceptado para mensajes de correo electrónico en RuNet. Es ampliamente utilizado en sistemas operativos Unix, incluido Linux. La versión "rusa" del KOI-8 se llama KOI-8R. Además, existen versiones para otros idiomas cirílicos, como el ucraniano.
- Página de códigos 1251 (CP 1251, Windows - 1251). Desarrollado por Microsoft para brindar soporte para el idioma ruso en el entorno Windows.
La principal ventaja del primer estándar CP866 fue la preservación de los caracteres pseudográficos en las mismas posiciones que en ASCII extendido. Esto hizo posible ejecutar programas de texto fabricados en el extranjero, como el famoso Norton Commander, sin modificaciones. Actualmente, CP866 se utiliza para programas desarrollados para Windows que se ejecutan en modo de texto de pantalla completa o en ventanas de texto, incluido FAR Manager.
Los textos informáticos escritos en codificación CP866 son bastante raros hoy en día, pero es el que se utiliza para los nombres de archivos en ruso en Windows.
"Unicode"
Actualmente, esta codificación es la más utilizada. Los códigos Unicode se dividen en áreas. El primero (U+0000 a U+007F) incluye caracteres ASCII con códigos. A esto le siguen las áreas de caracteres de diversas escrituras nacionales, así como los signos de puntuación y los símbolos técnicos. Además, algunos códigos Unicode están reservados en caso de que sea necesario incluir nuevos caracteres en el futuro.
Ahora ya sabes que en ASCII, cada carácter se representa como una combinación de 8 ceros y unos. Para los no especialistas, esta información puede parecer innecesaria y poco interesante, pero ¿no quieres saber qué está pasando “en el cerebro” de tu PC?
Superposición de personajes
El carácter BS (retroceso) permite a la impresora imprimir un carácter encima de otro. ASCII permitía agregar signos diacríticos a las letras de esta manera, por ejemplo:
- a BS "→á
- a BS ` → à
- una BS ^ → â
- o BS / → ø
- c BS , → ç
- norte BS ~ → с
Nota: en fuentes antiguas, el apóstrofo " estaba dibujado inclinado hacia la izquierda y la tilde ~ estaba desplazada hacia arriba, por lo que encajaban en el papel de un agudo y una tilde en la parte superior.
Si se superpone el mismo carácter a un carácter, el resultado es un efecto de fuente en negrita, y si se superpone un subrayado a un carácter, el resultado es un texto subrayado.
- una licenciatura en → a
- abs_→ a
Nota: Esto se utiliza, por ejemplo, en el sistema de ayuda del hombre.
Variantes nacionales de ASCII
La norma ISO 646 (ECMA-6) prevé la posibilidad de colocar símbolos nacionales @ [ \ ] ^ ` { | } ~ . Además de esto, en el sitio # se puede publicar £ , y en su lugar $ - ¤ . Este sistema es muy adecuado para idiomas europeos donde sólo se necesitan unos pocos caracteres adicionales. La versión de ASCII sin caracteres nacionales se llama US-ASCII o "Versión de referencia internacional".
Posteriormente, resultó más conveniente utilizar codificaciones de 8 bits (páginas de códigos), donde la mitad inferior de la tabla de códigos (0-127) está ocupada por caracteres US-ASCII y la mitad superior (128-255) por personajes adicionales, incluido un conjunto de personajes nacionales. Por lo tanto, la mitad superior de la tabla ASCII, antes de la adopción generalizada de Unicode, se usaba activamente para representar caracteres localizados, letras del idioma local. La falta de un estándar unificado para colocar caracteres cirílicos en la tabla ASCII causó muchos problemas con las codificaciones (KOI-8, Windows-1251 y otras). Otros idiomas con escrituras no latinas también sufrían de tener varias codificaciones diferentes.
.0 | .1 | .2 | .3 | .4 | .5 | .6 | .7 | .8 | .9 | .A | .B | .C | .D | .MI | .F | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0. | NUL | SOM | AEO | MOE | EQT | WRU | RU | CAMPANA | BKSP | HT | LF | Vermont | FF | CR | ENTONCES | SI. |
1. | CD 0 | CC 1 | CC 2 | CC 3 | CC 4 | ERRAR | SINCRONIZACIÓN | L.E.M. | S 0 | S 1 | S 2 | S 3 | S 4 | T 5 | T 6 | T 7 |
2. | ||||||||||||||||
3. | ||||||||||||||||
4. | BLANCO | ! | " | # | $ | % | & | " | ( | ) | * | + | , | - | . | / |
5. | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | : | ; | < | = | > | ? |
6. | ||||||||||||||||
7. | ||||||||||||||||
8. | ||||||||||||||||
9. | ||||||||||||||||
A. | @ | A | B | C | D | mi | F | GRAMO | h | I | j | k | l | METRO | norte | oh |
B. | PAG | q | R | S | t | Ud. | V | W. | X | Y | z | [ | \ | ] | ← | |
C. | ||||||||||||||||
D. | ||||||||||||||||
MI. | a | b | C | d | mi | F | gramo | h | i | j | k | yo | metro | norte | oh | |
F. | pag | q | r | s | t | tu | v | w | X | y | z | ESC | DEL |
En aquellas computadoras donde la unidad mínima de memoria direccionable era una palabra de 36 bits, inicialmente se utilizaron caracteres de 6 bits (1 palabra = 6 caracteres). Después de la transición a ASCII, dichas computadoras comenzaron a contener 5 caracteres de siete bits (quedaba 1 bit extra) o 4 caracteres de nueve bits en una palabra.
Los códigos ASCII también se utilizan para determinar qué tecla se presiona durante la programación. Para un teclado QWERTY estándar, la tabla de códigos tiene este aspecto:
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, comenzando desde ASCII básico, así como sus versiones extendidas CP866, KOI8-R, Windows 1251 y terminando con las modernas codificaciones Unicode Consortium 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 latinoEl 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 “aski”). 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á 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 un diseño de este tipo 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 sepas 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, los grados deberán contarse nuevamente comenzando 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íaEntonces, 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 y le permitió 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, se puede observar que las letras rusas en su tabla no están en orden alfabético, como lo hacía, 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 grietasEl 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 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 constantemente asustando basura, 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 32Estos miles de caracteres del grupo lingüístico del Sudeste Asiático no podrían describirse en un solo byte de información que se asignó para 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, codifican hardware, 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 su 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 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 solucionarloVeamos 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 configura 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 escribir 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 lentamente, 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");"> ![]() Tú podrías estar interesado
Tabla de códigos de caracteres ASCII de Windows. 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. |
Código | Descripción |
---|---|
NULO, 00 | Nulo, vacío |
SOH, 01 | Inicio del rumbo |
STX, 02 | Inicio de TeXt, el comienzo del texto. |
ETX, 03 | Fin del texto, fin del texto |
EOT, 04 | Fin de la transmisión |
ENQ, 05 | Preguntar. Por favor confirmar |
ACK, 06 | Reconocimiento. Confirmo |
bel, 07 | campana, llama |
Licenciatura, 08 | Retroceso, retroceder un carácter |
Pestaña, 09 | Pestaña, pestaña horizontal |
LF, 0A | Avance 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, 0B | Pestaña vertical, tabulación vertical. |
FF, 0C | Avance de formulario, avance de página, nueva página |
CR, 0D | Retorno de carro, retorno de carro. Hoy en día en la mayoría de los lenguajes de programación se denota como \r |
Entonces, 0E | Shift Out, cambia el color de la cinta de tinta en el dispositivo de impresión |
SI,0F | Shift In, devuelve el color de la cinta de tinta al dispositivo de impresión |
DLE, 10 | Data 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, 15 | Reconocimiento Negativo, no confirmo. |
SINC, 16 | Sincronización. Símbolo de sincronización |
ETB, 17 | Fin del bloque de texto, fin del bloque de texto |
CAN, 18 | Cancelar, cancelar transferido previamente |
EM, 19 | Fin del medio |
SUB, 1A | Sustituto, 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 escape |
FS, 1C | Separador de archivos, separador de archivos |
GS, 1D | Separador de grupo |
RS, 1E | Separador de registros, separador de registros |
EE.UU., 1P | Separador de unidades |
DEL, 7F | Eliminar, borrar el último carácter. |
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.