¿Qué son las codificaciones de caracteres como ANSI y Unicode, y en qué se diferencian?

¿Qué son las codificaciones de caracteres como ANSI y Unicode, y en qué se diferencian?

ASCII, UTF-8, ISO-8859… Puede que hayas visto estos extraños apodos flotando, pero ¿qué significan realmente? Siga leyendo mientras explicamos qué es la codificación de caracteres y cómo estos acrónimos se relacionan con el texto sin formato que vemos en la pantalla.

Bloques de construcción fundamentales

Cuando hablamos de lenguaje escrito, decimos que las letras son los bloques de construcción de las palabras, que luego construyen oraciones, párrafos, etc. Las letras son símbolos que representan sonidos. Cuando hablas de lenguaje, estás hablando de grupos de sonidos que se unen para formar una especie de significado. Todo sistema lingüístico tiene un conjunto complejo de reglas y definiciones que gobiernan estos significados. Si tiene una palabra, es inútil a menos que sepa de qué idioma es y la use con otros que hablan ese idioma.

(Comparación de guiones de Grantha, Tulu y malayalam, imagen de Wikipedia)

En el mundo de las computadoras, usamos el término «personaje». Un carácter es una especie de concepto abstracto, definido por parámetros específicos, pero es la unidad fundamental de significado. El latín ‘A’ no es lo mismo que un griego ‘alfa’ o un ‘alif’ árabe porque tienen contextos diferentes, provienen de diferentes idiomas y tienen pronunciaciones ligeramente diferentes, por lo que puede decir que son caracteres diferentes. La representación visual de un carácter se denomina «glifo» y los diferentes conjuntos de glifos se denominan fuentes. Los grupos de personajes pertenecen a un “conjunto” o un “repertorio”.

Cuando escribe un párrafo y cambia la fuente, no está cambiando los valores fonéticos de las letras, está cambiando su apariencia. Es solo cosmético (¡pero no sin importancia!). Algunos idiomas, como el chino y el egipcio antiguo, tienen ideogramas; estos representan ideas completas en lugar de sonidos, y su pronunciación puede variar con el tiempo y la distancia. Si sustituye un carácter por otro, está sustituyendo una idea. Es más que cambiar letras, es cambiar un ideograma.

Codificación de caracteres

(Imagen de Wikipedia)

Cuando escribe algo en el teclado o carga un archivo, ¿cómo sabe la computadora qué mostrar? Para eso está la codificación de caracteres. El texto en su computadora no es realmente letras, es una serie de valores alfanuméricos emparejados. La codificación de caracteres actúa como una clave para qué valores corresponden a qué caracteres, al igual que la forma en que la ortografía dicta qué sonidos corresponden a qué letras. El código Morse es una especie de codificación de caracteres. Explica cómo los grupos de unidades largas y cortas, como los pitidos, representan personajes. En código Morse, los caracteres son solo letras, números y puntos en inglés. Hay muchas codificaciones de caracteres de computadora que se traducen en letras, números, acentos, signos de puntuación, símbolos internacionales, etc.

A menudo, en este tema, también se utiliza el término «páginas de códigos». Se trata básicamente de codificaciones de caracteres que utilizan determinadas empresas, a menudo con ligeras modificaciones. Por ejemplo, la página de códigos de Windows 1252 (anteriormente ANSI 1252) es una forma modificada de ISO-8859-1. Se utilizan principalmente como un sistema interno para hacer referencia a codificaciones de caracteres estándar y modificadas que son específicas de los mismos sistemas. Al principio, la codificación de caracteres no era tan importante porque las computadoras no se comunicaban entre sí. Con Internet ganando importancia y la creación de redes como un fenómeno común, se ha vuelto cada vez más importante en nuestra vida cotidiana sin que nos demos cuenta.

Muchos tipos diferentes

caracteres especiales

(Imagen de sarah sosiak)

Hay muchas codificaciones de caracteres diferentes y hay muchas razones para ello. La codificación de caracteres que elija utilizar depende de sus necesidades. Si se está comunicando en ruso, tiene sentido utilizar una codificación de caracteres que admita bien el cirílico. Si te comunicas en coreano, querrás algo que represente bien a Hangul y Hanja. Si eres matemático, entonces quieres algo que tenga todos los símbolos científicos y matemáticos bien representados, así como los glifos griegos y latinos. Si eres un bromista, podrías beneficiarte del texto al revés. Y, si desea que una determinada persona vea todos estos tipos de documentos, desea una codificación bastante común y de fácil acceso.

Echemos un vistazo a algunos de los más comunes.

(Extracto de la tabla ASCII, imagen de asciitable.com)

  • ASCII – El Código estándar americano para el intercambio de información es una de las codificaciones de caracteres más antiguas. Originalmente fue diseñado en base a códigos telegráficos y ha evolucionado con el tiempo para incluir más símbolos y los ahora obsoletos caracteres de control sin imprimir. Probablemente sea lo más básico en términos de sistemas modernos, ya que se limita al alfabeto latino sin caracteres acentuados. Su codificación de 7 bits solo permite 128 caracteres, por lo que se utilizan varias variantes no oficiales en todo el mundo.
  • ISO-8859 – El grupo de codificaciones de caracteres más utilizado por la Organización Internacional de Normalización es el número 8859. Cada codificación específica se designa con un número, a menudo precedido por un apodo descriptivo, por ejemplo ISO-8859-3 (Latin-3), ISO-8859 -6 (latín / árabe). Es un superconjunto de ASCII, lo que significa que los primeros 128 valores de la codificación son los mismos que ASCII. Sin embargo, es de 8 bits y permite 256 caracteres, por lo que se construye a partir de ahí e incluye una gama mucho más amplia de caracteres, con cada codificación específica centrándose en un conjunto diferente de criterios. Latin-1 incluía un montón de letras y símbolos acentuados, pero luego fue reemplazado por un conjunto revisado llamado Latin-9 que incluye glifos actualizados como el símbolo del euro.

Escritura tibetana

(Extracto de script tibetano, Unicode v4, de unicode.org)

  • Unicode – Este estándar de codificación tiene como objetivo la universalidad. Actualmente incluye 93 scripts organizados en varios bloques, y muchos más están en proceso. Unicode funciona de manera diferente a otros juegos de caracteres en que en lugar de codificar directamente un glifo, cada valor se dirige más a un «punto de código». Estos son valores hexadecimales que corresponden a caracteres, pero el programa proporciona los glifos por separado, como su navegador web. Estos puntos de código se representan típicamente de la siguiente manera: U + 0040 (que se traduce como ‘@’). Las codificaciones específicas bajo el estándar Unicode son UTF-8 y UTF-16. UTF-8 intenta permitir la máxima compatibilidad con ASCII. Es de 8 bits, pero permite todos los caracteres a través de un mecanismo de sustitución y múltiples pares de valores por carácter. UTF-16 abandona la compatibilidad ASCII completa para una compatibilidad más completa de 16 bits con el estándar.
  • ISO-10646 – Esta no es una codificación real, solo un juego de caracteres Unicode que ha sido estandarizado por ISO. Esto es especialmente importante porque es el repertorio de caracteres utilizado por HTML. Faltan algunas de las funciones más avanzadas proporcionadas por Unicode que permiten ordenar y escribir de derecha a izquierda, así como de izquierda a derecha. No obstante, funciona muy bien para el uso de Internet, ya que permite el uso de una amplia variedad de scripts y permite que el navegador interprete glifos. Esto hace que la localización sea un poco más fácil.

¿Qué codificación debo usar?

Bueno, ASCII funciona para la mayoría de hablantes de inglés, pero no para mucho más. Con más frecuencia verá ISO-8859-1, que funciona para la mayoría de los idiomas de Europa occidental. Otras versiones de ISO-8859 funcionan en cirílico, árabe, griego u otros alfabetos. Sin embargo, si desea mostrar varios scripts en el mismo documento o en la misma página web, UTF-8 proporciona una compatibilidad mucho mejor. También funciona muy bien para las personas que usan la puntuación adecuada, los símbolos matemáticos o los caracteres improvisados, como cuadrados y casillas de verificación.

gujarat samachar

(Varios idiomas en un documento, captura de pantalla de gujaratsamachar.com)

Sin embargo, cada conjunto tiene sus inconvenientes. ASCII está limitado en sus signos de puntuación, por lo que no funciona sorprendentemente bien para ediciones tipográficamente correctas. ¿Alguna vez ha escrito copiar y pegar desde Word solo para obtener una combinación extraña de glifos? Esta es la desventaja de ISO-8859, o más correctamente, su supuesta interoperabilidad con páginas de códigos específicas del sistema operativo (¡te estamos mirando a TI, Microsoft!). El principal inconveniente de UTF-8 es la falta de soporte adecuado para aplicaciones de edición y publicación. Otro problema es que los navegadores a menudo no interpretan y muestran solo la marca de orden de bytes de un carácter codificado en UTF-8. Esto da como resultado la visualización de glifos no deseados. Y, por supuesto, declarar una codificación y usar caracteres de otra sin declararlos / hacer referencia a ellos correctamente en una página web dificulta que los navegadores los representen correctamente y que los motores de búsqueda los indexen adecuadamente.

Para sus propios documentos, manuscritos, etc., puede utilizar lo que necesite para realizar el trabajo. Sin embargo, cuando se trata de la web, parece que la mayoría de la gente está de acuerdo en usar una versión UTF-8 que no usa una marca de orden de bytes, pero eso no es del todo unánime. Como puede ver, cada codificación de caracteres tiene su propio uso, contexto, fortalezas y debilidades. Como usuario final, probablemente no tendrá que lidiar con esto, pero ahora puede dar un paso más si lo desea.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Experto Geek - Tu Guía en Tendencias Tecnológicas