Página principal » cómo » ¿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 ... Es posible que haya visto a estos extraños nombres flotando alrededor, pero ¿qué significan en realidad? Siga leyendo mientras explicamos qué es la codificación de caracteres y cómo se relacionan estos acrónimos con el texto sin formato que vemos en la pantalla..

    Bloques de construcción fundamentales

    Cuando hablamos de lenguaje escrito, hablamos de 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, hablas de grupos de sonidos que se juntan para formar algún tipo de significado. Cada sistema de lenguaje tiene un conjunto complejo de reglas y definiciones que gobiernan esos significados. Si tiene una palabra, es inútil a menos que sepa de qué idioma proviene y la use con otras personas que hablan ese idioma..

    (Comparación de los guiones de Grantha, Tulu y Malayalam, Imagen de Wikipedia)

    En el mundo de las computadoras, usamos el término "carácter". 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 árabe 'alif' porque tienen diferentes contextos, son de diferentes idiomas y tienen pronunciaciones ligeramente diferentes, por lo que podemos decir que son caracteres diferentes. La representación visual de un personaje se denomina "glifo" y los diferentes conjuntos de glifos se denominan fuentes. Los grupos de personajes pertenecen a un "conjunto" o un "repertorio".

    Cuando escribes un párrafo y cambias la fuente, no estás cambiando los valores fonéticos de las letras, estás cambiando su apariencia. Es sólo cosmético (¡pero no carece de importancia!). Algunos idiomas, como el antiguo egipcio y el chino, tienen ideogramas; estos representan ideas completas en lugar de sonidos, y sus pronunciaciones pueden variar con el tiempo y la distancia. Si sustituyes un personaje por otro, estás sustituyendo una idea. Es más que solo 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 es 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 los valores que corresponden a los caracteres, de manera muy similar a como la ortografía determina qué sonidos corresponden a las 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 los caracteres. En el código Morse, los caracteres son solo letras inglesas, números y paradas completas. Hay muchas codificaciones de caracteres en la computadora que se traducen en letras, números, acentos, signos de puntuación, símbolos internacionales, etc..

    A menudo en este tema, el término "páginas de códigos" también se utiliza. Se trata esencialmente de codificaciones de caracteres utilizadas por empresas específicas, a menudo con ligeras modificaciones. Por ejemplo, la página de códigos de Windows 1252 (anteriormente conocida como ANSI 1252) es una forma modificada de la norma ISO-8859-1. Se utilizan principalmente como sistema interno para referirse a las 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 llegando a la prominencia y las redes como una ocurrencia común, se ha convertido en una parte cada vez más importante de nuestras vidas cotidianas sin que nos demos cuenta..

    Muchos tipos diferentes

    (Imagen de saraia sarah)

    Hay muchas codificaciones de caracteres diferentes por ahí, y hay muchas razones para eso. La codificación de caracteres que elija utilizar dependerá de cuáles sean sus necesidades. Si se comunica en ruso, tiene sentido utilizar una codificación de caracteres que admita el cirílico. Si te comunicas en coreano, entonces querrás algo que represente bien a Hangul y Hanja. Si usted es un matemático, entonces quiere 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, tal vez te beneficiarías de un texto al revés. Y, si desea que todos los tipos de documentos sean vistos por cualquier persona, desea una codificación que sea 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 basándose en códigos telegráficos y evolucionó a lo largo del tiempo para incluir más símbolos y algunos caracteres de control no impresos ahora obsoletos. Probablemente sea lo más básico que pueda obtener en términos de sistemas modernos, ya que se limita al alfabeto latino sin caracteres acentuados. Su codificación de 7 bits permite solo 128 caracteres, por lo que hay varias variantes no oficiales en uso en todo el mundo.
    • ISO-8859 - El grupo de codificaciones de caracteres más utilizado de la Organización Internacional para la Estandarización es el número 8859. Cada codificación específica se designa con un número, a menudo con el prefijo descriptivo, por ejemplo. ISO-8859-3 (Latin-3), ISO-8859-6 (Latin / Arabic). Es un superconjunto de ASCII, lo que significa que los primeros 128 valores en la codificación son los mismos que ASCII. Sin embargo, es de 8 bits y admite 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 centrada 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.

    (Extracto de la escritura tibetana, Unicode v4, de unicode.org)

    • Unicode - Este estándar de codificación apunta a la universalidad. Actualmente incluye 93 scripts organizados en varios bloques, con muchos más en las obras. Unicode funciona de manera diferente a otros juegos de caracteres, ya 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 los glifos en sí se proporcionan de forma separada por el programa. , como su navegador web. Estos puntos de código se representan comúnmente 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 elimina la compatibilidad perfecta con ASCII para una compatibilidad más completa de 16 bits con el estándar.
    • ISO-10646 - Esta no es una codificación real, solo un conjunto de caracteres de Unicode que ha sido estandarizado por la ISO. Es sobre todo importante porque es el repertorio de personajes utilizado por HTML. Faltan algunas de las funciones más avanzadas proporcionadas por Unicode que permiten la intercalación y de derecha a izquierda junto con las secuencias de comandos de izquierda a derecha. Aún así, funciona muy bien para su uso en Internet, ya que permite el uso de una amplia variedad de scripts y permite que el navegador interprete los glifos. Esto hace que la localización sea algo más fácil..

    ¿Qué codificación debo usar??

    Bueno, ASCII funciona para la mayoría de los hablantes de inglés, pero no para mucho más. Más a menudo verá ISO-8859-1, que funciona para la mayoría de los idiomas de Europa occidental. Las otras versiones de ISO-8859 funcionan para scripts cirílicos, árabes, griegos u otros específicos. Sin embargo, si desea mostrar varios scripts en el mismo documento o en la misma página web, UTF-8 permite 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 extraoficiales, como los cuadrados y las casillas de verificación..

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

    Sin embargo, hay inconvenientes para cada conjunto. ASCII está limitado en sus signos de puntuación, por lo que no funciona increíblemente bien para las correcciones tipográficas correctas. ¿Alguna vez has escrito copiar / pegar desde Word solo para tener alguna combinación extraña de glifos? Ese es el inconveniente de ISO-8859, o más bien, su supuesta interoperabilidad con las páginas de códigos específicas del sistema operativo (¡estamos mirando a USTED, Microsoft!). El principal inconveniente de UTF-8 es la falta de soporte adecuado para editar y publicar aplicaciones. Otro problema es que los navegadores a menudo no interpretan y simplemente muestran la marca de orden de bytes de un carácter codificado en UTF-8. Esto hace que se muestren 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 usar lo que necesite para hacer el trabajo. Sin embargo, en lo que respecta a 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 y fortalezas y debilidades. Como usuario final, probablemente no tenga que lidiar con esto, pero ahora puede dar un paso más hacia adelante si así lo desea..