De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

Cinta perforada con la palabra "Wikipedia" codificada en ASCII . La presencia y ausencia de un agujero representa 1 y 0, respectivamente; por ejemplo, "W" se codifica como "1010111".

En informática , almacenamiento de datos y transmisión de datos , la codificación de caracteres se utiliza para representar un repertorio de caracteres mediante algún tipo de sistema de codificación que asigna un número a cada carácter para su representación digital. [1] Según el nivel de abstracción y el contexto, los puntos de código correspondientes y el espacio de código resultante pueden considerarse patrones de bits , octetos , números naturales , pulsos eléctricos, etc. En el cálculo se utiliza una codificación de caracteres, almacenamiento de datos y transmisión de datos textuales. "Conjunto de caracteres", "mapa de caracteres", "conjunto de códigos " y " página de códigos " son términos relacionados, pero no idénticos.

Los primeros códigos de caracteres asociados con el telégrafo óptico o eléctrico solo podían representar un subconjunto de los caracteres utilizados en los idiomas escritos , a veces restringidos a letras mayúsculas , números y solo algunos signos de puntuación . El bajo costo de la representación digital de datos en los sistemas informáticos modernos permite códigos de caracteres más elaborados (como Unicode ) que representan la mayoría de los caracteres utilizados en muchos lenguajes escritos. La codificación de caracteres utilizando estándares aceptados internacionalmente permite el intercambio de texto en formato electrónico en todo el mundo.

Historia [ editar ]

La historia de los códigos de caracteres ilustra la necesidad creciente de información simbólica basada en caracteres mediada por máquinas a distancia, utilizando medios eléctricos que alguna vez fueron novedosos. Los primeros códigos se basaban en sistemas de codificación y cifrado manuales y escritos a mano, como el cifrado de Bacon , Braille , banderas de señales marítimas internacionales y la codificación de 4 dígitos de caracteres chinos para un código telegráfico chino ( Hans Schjellerup , 1869). Con la adopción de técnicas eléctricas y electromecánicas, estos primeros códigos se adaptaron a las nuevas capacidades y limitaciones de las primeras máquinas. El código de caracteres transmitido eléctricamente más antiguo conocido, el código Morse, introducido en la década de 1840, utilizó un sistema de cuatro "símbolos" (señal corta, señal larga, espacio corto, espacio largo) para generar códigos de longitud variable. Aunque la mayor parte del uso comercial del código Morse fue a través de maquinaria, [ cita requerida ] también se usó como un código manual, generable a mano en una tecla de telégrafo y descifrable de oído, y persiste en el uso de radioaficionados. La mayoría de los códigos tienen una longitud fija por carácter o secuencias de longitud variable de códigos de longitud fija (por ejemplo, Unicode ). [2]

Los ejemplos comunes de sistemas de codificación de caracteres incluyen el código Morse , el código Baudot , el Código estándar americano para el intercambio de información ( ASCII ) y Unicode . Unicode , un sistema de codificación extensible y bien definido, ha suplantado a la mayoría de las codificaciones de caracteres anteriores, pero el camino del desarrollo del código hasta el presente es bastante conocido.

El código Baudot , una codificación de cinco bits, fue creado por Émile Baudot en 1870, patentado en 1874, modificado por Donald Murray en 1901 y estandarizado por el CCITT como Alfabeto Telegráfico Internacional No. 2 (ITA2) en 1930. El nombre "baudot "se ha aplicado erróneamente a ITA2 y sus muchas variantes. ITA2 adolecía de muchas deficiencias y, a menudo, muchos fabricantes de equipos lo "mejoraban", lo que a veces creaba problemas de compatibilidad. En 1959, el ejército estadounidense definió su Fieldatacode, un código de seis o siete bits, introducido por el Cuerpo de Señales del Ejército de EE. UU. Si bien Fieldata abordó muchos de los problemas entonces modernos (por ejemplo, códigos de letras y dígitos dispuestos para la clasificación de la máquina), Fieldata no alcanzó sus objetivos y fue de corta duración. En 1963, el primer código ASCII (Código estándar americano para el intercambio de información) fue publicado (X3.4-1963) por el comité ASCII (que incluía al menos a un miembro del comité Fieldata, WF Leubbert) que abordó la mayoría de las deficiencias de Fieldata. , usando un código más simple. Muchos de los cambios fueron sutiles, como conjuntos de caracteres que se pueden comparar dentro de ciertos rangos numéricos. ASCII63 fue un éxito, ampliamente adoptado por la industria, y con el número de seguimiento del código ASCII de 1967 (que agregó letras minúsculas y solucionó algunos problemas de "código de control"), ASCII67 fue adoptado de manera bastante generalizada. ASCII67 'La naturaleza centrada en Estados Unidos se abordó de alguna manera en elEstándar ECMA-6 . [3]

Algo aislado históricamente, IBM 's decimal codificado en binario ( BCD ) fue un esquema de codificación de seis bits utilizado por IBM en ya en 1959, en sus 1401 y 1620 ordenadores, y en su serie 7000 (por ejemplo, 704, 7040, 709 y 7090 computadoras), así como en los periféricos asociados. BCD amplió la codificación numérica simple de cuatro bits existente para incluir caracteres alfabéticos y especiales, asignándola fácilmente a la codificación de tarjetas perforadas, que ya era de uso generalizado. Fue el precursor de EBCDIC. En su mayor parte, los códigos de IBM se utilizaron principalmente con equipos de IBM, que eran más o menos un ecosistema cerrado, y no vieron mucha adopción fuera de los "círculos" de IBM. IBM s'El código de intercambio decimal codificado en binario extendido (generalmente abreviado como EBCDIC) es un esquema de codificación de ocho bits desarrollado en 1963.

Las limitaciones de tales conjuntos pronto se hicieron evidentes, [¿ a quién? ] y se desarrollaron varios métodos ad hoc para ampliarlos. La necesidad de admitir más sistemas de escritura para diferentes idiomas, incluida la familia CJK de escrituras de Asia oriental , requería soporte para un número mucho mayor de caracteres y exigía un enfoque sistemático para la codificación de caracteres en lugar de los enfoques ad hoc previos . [ cita requerida ]

Al tratar de desarrollar codificaciones de caracteres universalmente intercambiables, los investigadores en la década de 1980 se enfrentaron al dilema de que, por un lado, parecía necesario agregar más bits para acomodar caracteres adicionales, pero por otro lado, para los usuarios del conjunto de caracteres relativamente pequeño. del alfabeto latino (que todavía constituía la mayoría de los usuarios de computadoras), esos bits adicionales eran un desperdicio colosal de recursos informáticos entonces escasos y costosos (ya que siempre se reducirían a cero para tales usuarios). En 1985, la unidad de disco duro de un usuario de computadora personal promedio podía almacenar solo unos 10 megabytes y costaba aproximadamente 250 dólares estadounidenses en el mercado mayorista (y mucho más si se compraba por separado al por menor), [4] por lo que era muy importante en ese momento para hacer que cada bit cuente.

La solución de compromiso que finalmente se encontró y desarrolló en Unicode fue romper la suposición (que se remonta a los códigos telegráficos) de que cada carácter siempre debe corresponder directamente a una secuencia particular de bits. En su lugar, los caracteres se asignarían primero a una representación intermedia universal en forma de números abstractos llamados puntos de código . Los puntos de código se representarían entonces de diversas formas y con varios números predeterminados de bits por carácter (unidades de código) según el contexto. Para codificar puntos de código más altos que la longitud de la unidad de código, como por encima de 256 para unidades de 8 bits, la solución fue implementar codificaciones de ancho variable donde una secuencia de escape señalaría que los bits subsiguientes deberían analizarse como un punto de código más alto.

Terminología [ editar ]

Terminología relacionada con la codificación de caracteres
  • Un carácter es una unidad mínima de texto que tiene valor semántico.
  • Un juego de caracteres es una colección de caracteres que pueden usarse en varios idiomas. Ejemplo: el inglés y la mayoría de los idiomas europeos usan el juego de caracteres latinos, aunque el juego de caracteres griego solo lo usa el idioma griego.
  • Un juego de caracteres codificados es un juego de caracteres en el que cada carácter corresponde a un número único.
  • Un punto de código de un juego de caracteres codificado es cualquier valor permitido en el juego de caracteres o espacio de código.
  • Un espacio de código es un rango de números enteros cuyos valores son puntos de código.
  • Una unidad de código es una secuencia de bits que se utiliza para codificar cada carácter de un repertorio dentro de una forma de codificación determinada. Esto se conoce como valor de código en algunos documentos. [5]
Repertorio de personajes (el conjunto abstracto de personajes)

El repertorio de caracteres es un conjunto abstracto de más de un millón de caracteres que se encuentran en una amplia variedad de escrituras que incluyen latín, cirílico, chino, coreano, japonés, hebreo y arameo.

Otros símbolos, como la notación musical, también se incluyen en el repertorio de caracteres. Tanto los estándares Unicode como GB18030 tienen un repertorio de caracteres. A medida que se agregan nuevos caracteres a un estándar, el otro estándar también agrega esos caracteres para mantener la paridad.

El tamaño de la unidad de código es equivalente a la medida de bits para la codificación particular:

  • Una unidad de código en US-ASCII consta de 7 bits;
  • Una unidad de código en UTF-8 , EBCDIC y GB18030 consta de 8 bits;
  • Una unidad de código en UTF-16 consta de 16 bits;
  • Una unidad de código en UTF-32 consta de 32 bits.

Ejemplo de una unidad de código: Considere una cadena de las letras "abc" seguida de U + 10400 𐐀 DESERET LETRA MAYÚSCULA LARGA I (representada con 1 char32_t, 2 char16_t o 4 char8_t). Esa cadena contiene:

  • cuatro personajes;
  • cuatro puntos de código
  • ya sea:
    cuatro unidades de código en UTF-32 (00000061, 00000062, 00000063, 00010400)
    cinco unidades de código en UTF-16 (0061, 0062, 0063, d801, dc00), o
    siete unidades de código en UTF-8 (61, 62, 63, f0, 90, 90, 80).

La convención para hacer referencia a un carácter en Unicode es comenzar con 'U +' seguido del valor del punto de código en hexadecimal. El rango de puntos de código válidos para el estándar Unicode es U + 0000 a U + 10FFFF, inclusive, dividido en 17 planos , identificados por los números 0 a 16. Los caracteres en el rango U + 0000 a U + FFFF están en el plano 0, llamado Plano Multilingüe Básico (BMP). Este plano contiene los caracteres más utilizados. Los caracteres en el rango U + 10000 a U + 10FFFF en los otros planos se denominan caracteres suplementarios .

La siguiente tabla muestra ejemplos de valores de puntos de código:

Un punto de código está representado por una secuencia de unidades de código. El mapeo está definido por la codificación. Por lo tanto, el número de unidades de código necesarias para representar un punto de código depende de la codificación:

  • UTF-8: los puntos de código se asignan a una secuencia de una, dos, tres o cuatro unidades de código.
  • UTF-16: las unidades de código son dos veces más largas que las unidades de código de 8 bits. Por lo tanto, cualquier punto de código con un valor escalar menor que U + 10000 se codifica con una única unidad de código. Los puntos de código con un valor U + 10000 o superior requieren dos unidades de código cada uno. Estos pares de unidades de código tienen un término único en UTF-16: "pares sustitutos Unicode".
  • UTF-32: la unidad de código de 32 bits es lo suficientemente grande como para que cada punto de código se represente como una única unidad de código.
  • GB18030: múltiples unidades de código por punto de código son comunes, debido a las pequeñas unidades de código. Los puntos de código se asignan a una, dos o cuatro unidades de código. [6]

Modelo de codificación Unicode [ editar ]

Unicode y su estándar paralelo, el conjunto de caracteres universal ISO / IEC 10646 , juntos constituyen una codificación de caracteres unificada y moderna. En lugar de asignar caracteres directamente a octetos ( bytes ), definen por separado qué caracteres están disponibles, los números naturales correspondientes ( puntos de código ), cómo se codifican esos números como una serie de números naturales de tamaño fijo (unidades de código) y, finalmente, cómo esos las unidades se codifican como una secuencia de octetos. El propósito de esta descomposición es establecer un conjunto universal de caracteres que se pueden codificar de diversas formas. [7] Para describir este modelo correctamente se requieren términos más precisos que "conjunto de caracteres" y "codificación de caracteres". Los términos utilizados en el modelo moderno son los siguientes:[7]

Un repertorio de caracteres es el conjunto completo de caracteres abstractos que admite un sistema. El repertorio puede ser cerrado, es decir, no se permiten adiciones sin crear un nuevo estándar (como es el caso de ASCII y la mayoría de la serie ISO-8859), o puede ser abierto, permitiendo adiciones (como es el caso de Unicode y en cierta medida las páginas de códigos de Windows ). Los personajes de un repertorio determinado reflejan las decisiones que se han tomado sobre cómo dividir los sistemas de escritura en unidades de información básicas. Las variantes básicas de los alfabetos latino , griego y cirílico se pueden dividir en letras, dígitos, puntuación y algunos caracteres especiales.como el espacio, que se pueden organizar en secuencias lineales simples que se muestran en el mismo orden en que se leen. Pero incluso con estos alfabetos, los diacríticos plantean una complicación: pueden considerarse como parte de un solo carácter que contiene una letra y diacrítico (conocido como carácter precompuesto), o como caracteres separados. El primero permite un sistema de manejo de texto mucho más simple, pero el segundo permite usar cualquier combinación de letras / diacríticos en el texto. Las ligaduras plantean problemas similares. Otros sistemas de escritura, como el árabe y el hebreo, se representan con repertorios de caracteres más complejos debido a la necesidad de acomodar elementos como texto bidireccional y glifos que se unen de diferentes maneras para diferentes situaciones.

Un conjunto de caracteres codificados (CCS) es una función que asigna caracteres a puntos de código (cada punto de código representa un carácter). Por ejemplo, en un repertorio dado, la letra mayúscula "A" en el alfabeto latino podría estar representada por el punto de código 65, el carácter "B" por 66, y así sucesivamente. Varios conjuntos de caracteres codificados pueden compartir el mismo repertorio; por ejemplo, las páginas de códigos ISO / IEC 8859-1 e IBM 037 y 500 cubren el mismo repertorio pero las asignan a diferentes puntos de código.

Una forma de codificación de caracteres (CEF) es la asignación de puntos de código a unidades de código para facilitar el almacenamiento en un sistema que representa los números como secuencias de bits de longitud fija (es decir, prácticamente cualquier sistema informático). Por ejemplo, un sistema que almacena información numérica en unidades de 16 bits solo puede representar directamente los puntos de código 0 a 65,535 en cada unidad, pero los puntos de código más grandes (digamos, 65,536 a 1.4 millones) podrían representarse usando múltiples unidades de 16 bits. Esta correspondencia está definida por un CEF.

A continuación, un esquema de codificación de caracteres (CES) es la asignación de unidades de código a una secuencia de octetos para facilitar el almacenamiento en un sistema de archivos basado en octetos o la transmisión a través de una red basada en octetos. Los esquemas de codificación de caracteres simples incluyen UTF-8 , UTF-16BE , UTF-32BE , UTF-16LE o UTF-32LE ; Los esquemas de codificación de caracteres compuestos, como UTF-16 , UTF-32 e ISO / IEC 2022 , cambian entre varios esquemas simples utilizando marcas de orden de bytes o secuencias de escape ; Los esquemas de compresión intentan minimizar el número de bytes utilizados por unidad de código (como SCSU ,BOCU y Punycode ).

Aunque UTF-32BE es un CES más simple, la mayoría de los sistemas que trabajan con Unicode utilizan UTF-8 , que es compatible con versiones anteriores de ASCII de ancho fijo y asigna puntos de código Unicode a secuencias de octetos de ancho variable, o UTF-16BE , que es hacia atrás. compatible con UCS-2BE de ancho fijo y asigna puntos de código Unicode a secuencias de ancho variable de palabras de 16 bits. Consulte la comparación de codificaciones Unicode para obtener una discusión detallada.

Finalmente, puede haber un protocolo de nivel superior que proporcione información adicional para seleccionar la variante particular de un carácter Unicode , particularmente cuando hay variantes regionales que han sido 'unificadas' en Unicode como el mismo carácter. Un ejemplo es el atributo XML xml: lang.

El modelo Unicode utiliza el término mapa de caracteres para los sistemas históricos que asignan directamente una secuencia de caracteres a una secuencia de bytes, cubriendo todas las capas CCS, CEF y CES. [7]

Juegos de caracteres, mapas de caracteres y páginas de códigos [ editar ]

Históricamente, los términos "codificación de caracteres", "mapa de caracteres", "conjunto de caracteres" y " página de códigos " eran sinónimos en informática , ya que el mismo estándar especificaría un repertorio de caracteres y cómo debían codificarse en un flujo de unidades de código: generalmente con un solo carácter por unidad de código. Pero ahora los términos tienen significados relacionados pero distintos, [8] debido a los esfuerzos de los organismos de normalización por utilizar una terminología precisa al escribir y unificar muchos sistemas de codificación diferentes. [7] Independientemente, los términos todavía se usan indistintamente, y el conjunto de caracteres es casi omnipresente.

Una " página de códigos " generalmente significa una codificación orientada a bytes , pero con respecto a algún conjunto de codificaciones (que cubren diferentes scripts), donde muchos caracteres comparten los mismos códigos en la mayoría o en todas esas páginas de códigos. Los conjuntos de páginas de códigos más conocidos son "Windows" (basado en Windows-1252) e "IBM" / "DOS" (basado en la página de códigos 437 ); consulte la página de códigos de Windows para obtener más detalles. La mayoría, pero no todas, las codificaciones a las que se hace referencia como páginas de códigos son codificaciones de un solo byte (pero consulte octeto sobre tamaño de byte).

La Arquitectura de Representación de Datos de Carácter (CDRA) de IBM designa con identificadores de juego de caracteres codificados ( CCSID ) y cada uno de los cuales se denomina "juego de caracteres", "juego de caracteres", "página de códigos" o "CHARMAP". [7]

El término "página de códigos" no aparece en Unix o Linux, donde se prefiere "charmap", generalmente en el contexto más amplio de las configuraciones regionales.

A diferencia de un " conjunto de caracteres codificados ", una "codificación de caracteres" es un mapa de caracteres abstractos a palabras de código . Un "conjunto de caracteres" en el lenguaje HTTP (y MIME ) es lo mismo que una codificación de caracteres (pero no lo mismo que CCS).

" Codificación heredada " es un término que a veces se utiliza para caracterizar codificaciones de caracteres antiguas, pero con una ambigüedad de sentido. La mayor parte de su uso está en el contexto de Unicodificación , donde se refiere a codificaciones que no cubren todos los puntos de código Unicode, o, más generalmente, usando un repertorio de caracteres algo diferente: varios puntos de código que representan un carácter Unicode, [9] o viceversa (ver, por ejemplo , la página de códigos 437 ). Algunas fuentes se refieren a una codificación como heredada solo porque precedió a Unicode. [10] Todas las páginas de códigos de Windows se suelen denominar heredadas, tanto porque son anteriores a Unicode como porque no pueden representar los 2 21 puntos de código Unicode posibles.

Traducción de codificación de caracteres [ editar ]

Como resultado de tener muchos métodos de codificación de caracteres en uso (y la necesidad de compatibilidad con los datos archivados), se han desarrollado muchos programas de computadora para traducir datos entre esquemas de codificación como una forma de transcodificación de datos . Algunos de ellos se citan a continuación.

Multiplataforma :

  • Navegadores web : la mayoría de los navegadores web modernos cuentan con detección automática de codificación de caracteres. En Firefox 3, por ejemplo, consulte el submenú Ver / Codificación de caracteres.
  • iconv - programa y API estandarizada para convertir codificaciones
  • luit : programa que convierte la codificación de entrada y salida en programas que se ejecutan de forma interactiva
  • convert_encoding.py: utilidad basada en Python para convertir archivos de texto entre codificaciones arbitrarias y finales de línea. [11]
  • decodeh.py: algoritmo y módulo para adivinar heurísticamente la codificación de una cadena. [12]
  • Componentes internacionales para Unicode : un conjunto de bibliotecas C y Java para realizar la conversión de juegos de caracteres. uconv se puede utilizar desde ICU4C.
  • chardet : esta es una traducción del código de detección de codificación automática de Mozilla al lenguaje informático Python.
  • Las versiones más recientes del comando de archivo de Unix intentan realizar una detección básica de la codificación de caracteres (también disponible en Cygwin ).
  • charset : biblioteca de plantillas C ++ con una interfaz simple para convertir entre C ++ / secuencias definidas por el usuario. charset definió muchos juegos de caracteres y le permite usar formatos Unicode con soporte de endianness .

Similar a Unix :

  • cmv: herramienta sencilla para transcodificar nombres de archivos. [13]
  • convmv: convierte un nombre de archivo de una codificación a otra. [14]
  • cstocs: convierte el contenido del archivo de una codificación a otra para los idiomas checo y eslovaco.
  • enca: analiza codificaciones para archivos de texto dados. [15]
  • recodificar: convierte el contenido del archivo de una codificación a otra [16]
  • utrac: convierte el contenido del archivo de una codificación a otra. [17]

Ventanas :

  • Encoding.Convert: API de .NET [18]
  • MultiByteToWideChar / WideCharToMultiByte - Convertir de ANSI a Unicode y Unicode a ANSI [19]
  • cscvt: herramienta de conversión de juegos de caracteres [20]
  • enca: analiza codificaciones para archivos de texto dados. [21]

Ver también [ editar ]

  • Codificación porcentual
  • Código alternativo
  • Codificaciones de caracteres en HTML
  • Categoría: codificación de caracteres : artículos relacionados con la codificación de caracteres en general
  • Categoría: Juegos de caracteres : artículos que detallan codificaciones de caracteres específicas
  • Representaciones hexadecimales
  • Mojibake : juego de caracteres no coincidente.
  • Mojikyo : un sistema ("conjunto de glifos") que incluye más de 100.000 dibujos de caracteres chinos, modernos y antiguos, populares y oscuros.
  • Capa de presentación
  • TRON , parte del proyecto TRON, es un sistema de codificación que no usa la Unificación Han; en su lugar, utiliza "códigos de control" para cambiar entre "planos" de caracteres de 16 bits.
  • Personajes del juego de caracteres universal
  • Detección de conjuntos de caracteres : se utiliza en algunas aplicaciones cuando los metadatos de codificación de caracteres no están disponibles.

Codificaciones de caracteres comunes [ editar ]

  • ISO 646
    • ASCII
  • EBCDIC
  • ISO 8859 :
    • ISO 8859-1 Europa Occidental
    • ISO 8859-2 Europa occidental y central
    • ISO 8859-3 Europa occidental y sur de Europa (turco, maltés más esperanto)
    • ISO 8859-4 Europa occidental y países bálticos (Lituania, Estonia, Letonia y Lapp)
    • Alfabeto cirílico ISO 8859-5
    • ISO 8859-6 árabe
    • ISO 8859-7 griego
    • ISO 8859-8 hebreo
    • ISO 8859-9 Europa occidental con juego de caracteres turco modificado
    • ISO 8859-10 Europa occidental con juego de caracteres racionalizado para los idiomas nórdicos, incluido el juego completo de islandés
    • ISO 8859-11 tailandés
    • ISO 8859-13 idiomas bálticos más polaco
    • ISO 8859-14 lenguas celtas (gaélico irlandés, escocés, galés)
    • ISO 8859-15 Se agregó el signo del euro y otras racionalizaciones a ISO 8859-1
    • ISO 8859-16 Idiomas de Europa central, oriental y meridional (albanés, bosnio, croata, húngaro, polaco, rumano, serbio y esloveno, pero también francés, alemán, italiano y gaélico irlandés)
  • CP437 , CP720 , CP737 , CP850 , CP852 , CP855 , CP857 , CP858 , CP860 , CP861 , CP862 , CP863 , CP865 , CP866 , CP869 , CP872
  • Conjuntos de caracteres de MS-Windows :
    • Windows-1250 para idiomas de Europa Central que usan escritura latina (polaco, checo, eslovaco, húngaro, esloveno, serbio, croata, bosnio, rumano y albanés)
    • Windows-1251 para alfabetos cirílicos
    • Windows-1252 para idiomas occidentales
    • Windows-1253 para griego
    • Windows-1254 para turco
    • Windows-1255 para hebreo
    • Windows-1256 para árabe
    • Windows-1257 para idiomas bálticos
    • Windows-1258 para vietnamitas
  • Mac OS Roman
  • KOI8-R , KOI8-U , KOI7
  • MIK
  • ISCII
  • TSCII
  • VISCII
  • JIS X 0208 es un estándar ampliamente implementado para la codificación de caracteres japoneses que tiene varias formas de codificación.
    • Shift JIS (la página de códigos de Microsoft 932 es un dialecto de Shift_JIS)
    • EUC-JP
    • ISO-2022-JP
  • JIS X 0213 es una versión extendida de JIS X 0208.
    • Shift_JIS-2004
    • EUC-JIS-2004
    • ISO-2022-JP-2004
  • Guobiao chino
    • GB 2312
    • GBK (página de códigos de Microsoft 936)
    • GB 18030
  • Taiwan Big5 (una variante más famosa es la página de códigos 950 de Microsoft )
    • Hong Kong HKSCS
  • coreano
    • KS X 1001 es un estándar coreano de codificación de caracteres de doble byte
    • EUC-KR
    • ISO-2022-KR
  • Unicode (y subconjuntos del mismo, como el 'Plano multilingüe básico' de 16 bits)
    • UTF-8
    • UTF-16
    • UTF-32
  • ANSEL o ISO / IEC 6937

Referencias [ editar ]

  1. ^ Definición del Diccionario de términos técnicos
  2. ^ Tom Henderson (17 de abril de 2014). "Tablas de códigos de caracteres de computadoras antiguas y por qué siguen siendo relevantes" . Smartbear . Consultado el 29 de abril de 2014 .
  3. ^ Tom Jennings (1 de marzo de 2010). "Un historial anotado de algunos códigos de caracteres" . Consultado el 1 de noviembre de 2018 .
  4. ^ Strelho, Kevin (15 de abril de 1985). "IBM impulsa discos duros a nuevos estándares" . InfoWorld . Popular Computing Inc. págs. 29–33 . Consultado el 10 de noviembre de 2020 .
  5. ^ "Glosario Unicode" . Consorcio Unicode.
  6. ^ "Los tutoriales de Java - Terminología" . Oracle . Consultado el 25 de marzo de 2018 .
  7. ^ a b c d e "Informe técnico Unicode n. ° 17: Modelo de codificación de caracteres Unicode" . 11 de noviembre de 2008 . Consultado el 8 de agosto de 2009 .
  8. ^ Shawn Steele (15 de marzo de 2005). "¿Cuál es la diferencia entre codificación, página de códigos, juego de caracteres y Unicode?" . MSDN .
  9. ^ "Procesamiento de información de la base de datos usando Unicode, un estudio de caso" Archivado el 17 de junio de 2006 en Wayback Machine.
  10. ^ Constable, Peter (13 de junio de 2001). "Conceptos básicos de codificación de juegos de caracteres" . Implementación de sistemas de escritura: introducción . SIL Internacional . Archivado desde el original el 5 de mayo de 2013 . Consultado el 19 de marzo de 2010 .
  11. ^ convert_encoding.py
  12. ^ Decodeh: decodifica heurísticamente una cadena o un archivo de texto. Archivado el 8 de enero de 2008 en Wayback Machine.
  13. ^ CharsetMove: herramienta sencilla para transcodificar nombres de archivos
  14. ^ Convmv: convierte los nombres de archivo de una codificación a otra
  15. ^ "Analizador de juegos de caracteres extremadamente ingenuo" . Archivado desde el original el 4 de diciembre de 2010 . Consultado el 11 de marzo de 2008 .
  16. ^ Recode - Proyecto GNU - Free Software Foundation (FSF)
  17. ^ Página de inicio de Utrac
  18. ^ Biblioteca de clases de Microsoft .NET Framework - Método Encoding.Convert
  19. ^ MultiByteToWideChar / WideCharToMultiByte - Convertir de ANSI a Unicode y Unicode a ANSI
  20. ^ Convertidor de juego de caracteres de Kalytta
  21. ^ "Analizador de juegos de caracteres extremadamente ingenuo" . Archivado desde el original el 15 de marzo de 2012 . Consultado el 31 de marzo de 2011 .

Lectura adicional [ editar ]

  • Mackenzie, Charles E. (1980). Juegos de caracteres codificados, historia y desarrollo . Serie de programación de sistemas (1 ed.). Addison-Wesley Publishing Company, Inc. ISBN 978-0-201-14460-4. LCCN  77-90165 .

Enlaces externos [ editar ]

  • Juegos de caracteres registrados por la Autoridad de números asignados de Internet (IANA)
  • Caracteres y codificaciones , de Jukka Korpela
  • Informe técnico Unicode n. ° 17: Modelo de codificación de caracteres
  • Códigos de caracteres decimales y hexadecimales en HTML Unicode - Convertidor de codificación
  • El mínimo absoluto que todo desarrollador de software debe conocer absoluta y positivamente sobre Unicode y conjuntos de caracteres (¡sin excusas!) Por Joel Spolsky (10 de octubre de 2003)