Provided by: manpages-es_4.23.1-1_all bug

NOMBRE

       charsets - internacionalización y estándares de conjuntos de caracteres

DESCRIPCIÓN

       Esta  página  de  manual  proporciona  un  breve  repaso  a  los  distintos estándares de codificación de
       caracteres y el modo en que se emplearon en Linux antes de que Unicode los reemplazase a todos. Alguna de
       esta información continúa siendo útil para las personas que trabajen con equipo o documentación antiguos.

       Los estándares que se comentan son: ASCII, GB 2312, ISO/IEC 8859, JIS, KOI8-R, KS, y Unicode.

       Se enfatiza principalmente en las codificaciones que se pueden encontrar  actualmente  en  las  distintas
       localizaciones en lugar de en la miríada de ellas que pueden encontrarse en otros sistemas.

   ASCII
       ASCII  (American  Standard  Code  For Information Interchange) es el conjunto original de caracteres de 7
       bits, originalmente diseñado para el inglés americano, también conocido  como  US-ASCII.  Actualmente  se
       define en la norma la ISO/IEC 646:1991 IRV (International Reference Version).

       Existen  diversas  variantes  del  ASCII  de  7 bits que reemplazan el signo del dolar por otros símbolos
       monetarios y caracteres de puntuación con caracteres alfabéticos  no  ingleses  para  cubrir  el  alemán,
       frances, español y otros. No se recomienda usar ningún de ellos; la libc de GNU no soporta localizaciones
       cuyos conjuntos de caracteres no sean verdaderos superconjuntos del ASCII.

       Si  se  usa  UTF-8,  Unicode es compatible con ASCII por lo que el antiguo ASCII se verá perfectamente en
       sistemas modernos que utilicen UTF-8.

   ISO/IEC 8859
       ISO/IEC 8859 es una serie de 15 conjuntos de caracteres de 8 bits, todos los ellos formados por ASCII  en
       su  inferior  (7  bits),  caracteres  invisibles de control en las posiciones 128 a 159, y 96 gráficos de
       ancho fijo en posiciones 160–255.

       De estos, el más importante es ISO/IEC 8859-1 'Alfabeto Latino No. 1' / Latin-1).  Gozó de  un  amplísimo
       grado  de  soporte  por diferentes sistemas pero en la actualidad está siendo sustituido gradualmente por
       Unicode. Los caracteres de ISO/IEC 8859-1 son también los primeros 256 caracteres de Unicode.

       El soporte de la consola para los otros conjuntos de caracteres ISO/IEC 8859 está disponible en Linux  en
       varias  utilidades (como setfont(8)) que modifican las relaciones entre el teclado y la tabla gráfica EGA
       y emplean la tabla de fuentes 'user mapping' en el driver de la consola.

       Aquí se presentan breves descripciones de cada conjunto:

       ISO/IEC 8859-1 (Latin-1)
              Latin-1 cubre la mayoría de lenguajes de Europa Occidental como el albanés, vasco, danés,  inglés,
              feroés,  gallego,  islandés,  irlandés, italiano, noruego, portugués, español y sueco. La falta de
              las ligaduras neerlandesas IJ/ij, de la francesa œ  y  de  las  antiguas  comillas  alemanas  „“  se
              consideraba aceptable.

       ISO/IEC 8859-2 (Latin-2)
              Latin-2  es  el  soporte para la mayoría de las lenguas eslavas y de Centro-Europa que se escriben
              con caracteres latinos: checo, alemán, húngaro, polaco, rumano, croata, eslovaco  y  esloveno.  Se
              consideraba aceptable tener que sustituir los caracteres rumanos ș/ț con ş/ţ.

       ISO/IEC 8859-3 (Latin-3)
              El  latín-3  fue  diseñado  para  gestionar  el esperanto, maltés y turco, pero ISO/IEC 8859-9 fue
              empleado con posterioridad para el turco.

       ISO/IEC 8859-4 (Latin-4)
              El latín-4 incoroporó letras para lenguas del norte de Europa como el estoniano,  el  letón  y  el
              lituano. Poseriormente sustituido por ISO/IEC 8859-10 e ISO/IEC 8859-13.

       ISO/IEC 8859-5
              Letras  cirílicas  para  el  búlgaro,  bielorruso,  macedonio,  ruso, serbio y (casi por completo)
              ucraniano. Nunca tuvo un amplio uso. Vea la discusión sobre el KOI8-R/KOI8-U más adelante.

       ISO/IEC 8859-6
              Fue creado para el árabe. La tabla de glifos ISO/IEC 8859-6 es un tipo de letra fijo de formas  de
              letra  separadas,  pero  un visor adecuado debería combinarlas usando las formas inicial, medial y
              final adecuadas.

       ISO/IEC 8859-7
              Fue creado para el griego actual en 1987 y posteriormente actualizado en el año 2003.

       ISO/IEC 8859-8
              Para el hebreo moderno sin 'niqud' (signos  de  puntuación).  Los  'niqud'  y  el  hebreo  bíblico
              'oficial'  se  encuentran fuera del ámbito de este conjunto de caracteres; en Linux se prefiere la
              codificación UTF-8 para esto.

       ISO/IEC 8859-9 (Latin-5)
              Ésta es una variante del Latin-1 que reemplaza letras islandesas con otras turcas.

       ISO/IEC 8859-10 (Latin-6)
              El Latin 6 añade las últimas letras del inuit (esquimal de Groenlandia) y  del  sami  (lapón)  que
              faltaban en el Latin 4 para cubrir toda el área nórdica.

       ISO/IEC 8859-11
              Implementa el alfabeto tailandés y es prácticamente idéntico al estándar TIS-620.

       ISO/IEC 8859-12
              Este conjunto de caracteres no existe.

       ISO/IEC 8859-13 (Latin-7)
              Para las lenguas de la Ribera del Báltico; en particular, incluye los caracteres letones que no se
              encuentran en Latin-4.

       ISO/IEC 8859-14 (Latin-8)
              Éste  es el conjunto de caracteres celta, que implementa: el antiguo irlandés, el gaélico manx, el
              galés, el gaélico, el cornuallés y el bretón.

       ISO/IEC 8859-15 (Latin-9)
              Latin-9 es parecido al -enormemente usado- Latin-1 salvo que reemplaza  algunos  de  los  símbolos
              menos  usados  con el símbolo del euro y algunos caracteres franceses y finlandeses no incuidos en
              Latin-1.

       ISO/IEC 8859-16 (Latin-10)
              Este conjunto abarca muchos idiomas del sudeste de Europa y, lo que es más importante: tiene mejor
              soporte para el rumano que Latin-2.

   KOI8-R / KOI8-U
       KOI8-R es un conjunto de caracteres no ISO muy usado en Rusia antes de Unicode.  La  primera  mitad  está
       formada  por  ASCII  y  la  segunda  es  un  conjunto  de  caracteres  cirílicos  algo mejor diseñado que
       ISO/IEC 8859-5. KOI8-U, basado en KOI8R, tiene un mejor soporte  para  el  ucraniano.  Ninguno  de  estos
       conjuntos son compatibles con ISO/IEC 2022, a diferencia de la serie ISO / IEC 8859.

       El  soporte  de  consola  para el KOI8-R está disponible en Linux a través de utilidades de usuario (como
       setfont(8)) que modifican las asociaciones de teclas y la tabla de gráficos EGA y  emplean  la  tabla  de
       tipos de letra de "correspondencia de usuario" en el controlador de consola.

   GB 2312
       GB 2312 es un conjunto nacional estándar de caracteres para el chino continental que se usa para expresar
       chino simplificado. Al igual que JIS X 0208, los caracteres se proyectan en una matriz de 94x94 celdas de
       dos bytes que se usa para construir la codificación EUC-CN. EUC-CN es la codificación más importante para
       Linux  e  incluye ASCII y GB 2312. Dese cuenta que EUC-CN frecuentemente se identifica como GB, GB 2312 o
       CN-GB.

   Big5
       Big5 fue un conjunto de caracteres muy usado en Taiwán para expresar el chino tradicional,  es  al  mismo
       tiempo  un  conjunto  de  caracteres  y una codificación. Es un superconjunto de ASCII. Los caracteres no
       ASCII se expresan en dos bytes.  Los bytes 0xa1–0xfe se utilizan como bytes principales  para  caracteres
       de  dos  bytes. Big5 y su extensión fueron ampliamente utilizados en Taiwán y Hong Kong. No es compatible
       con ISO/IEC 2022.

   JIS X 0208
       JIS X 0208 es el principal conjunto de  caracteres  estándar  en  Japón.   Aunque  hay  algunos  estándar
       nacionales  japoneses  más  (como  JIS X 0201, X 0212, y X 0213). Los caracteres se crean a partir de una
       matriz de dos bytes de 94x94, cada byte está en el intervalo 0x21–0x7e. Debe considerarse que JIS X  0208
       es  un conjunto de caracteres, no una codificación. Esto significa que el propio JIS X 0208 no se utiliza
       para expresar datos de texto. JIS  X  0208  forma  parte  de  codificaciones  como  EUC-JP,  Shift_JIS  y
       ISO/IEC 2022-JP.  EUC-JP  es  la  codificación más importante para Linux e incluye ASCII y JIS X 0208. En
       EUC-JP, los caracteres JIS X 0208 se expresan en dos bytes, cada uno de los cuales es  el  código  JIS  x
       0208, más 0x80.

   KS X 1001
       KS  X  1001  es  un  conjunto  de  caracteres  estándar  nacional  de Corea. Al igual que JIS X 0208, los
       caracteres se mapean en una matriz de dos bytes de 94x94.  KS X 1001 se utiliza como JIS X 0208, como  un
       componente  para construir codificaciones como EUC-KR, Johab y ISO/IEC 2022-KR. EUC-KR es la codificación
       más importante para Linux e incluye ASCII y KS X 1001. KS C 5601 es como anteriormente se conocía a KS  X
       1001.

   ISO/IEC 2022 e ISO/ IEC 4873
       Las  normas  ISO/IEC 2022  y ISO/IEC 4873 describen un modelo de control de fuentes basado en la práctica
       VT100.  Este modelo está (parcialmente) soportado por el núcleo de Linux y por xterm(1). Se han  definido
       varias codificaciones de caracteres basadas en ISO/IEC 2022, especialmente para el japonés.

       Hay  4  conjuntos  de  caracteres  gráficos,  llamados  G0, G1, G2 y G3, y uno de ellos es el conjunto de
       caracteres actual para los códigos con el bit más alto a 0 (inicialmente  G0),  y  uno  de  ellos  es  el
       conjunto  de  caracteres actual para los códigos con el bit más alto a 1 (inicialmente G1). Cada conjunto
       de caracteres gráfico tiene 94 ó 96 caracteres, y es esencialmente un conjunto de caracteres de  7  bits.
       Emplea  códigos  bien  entre  040–0177 (041–0176) o bien entre 0240–0377 (0241–0376). G0 siempre tiene de
       tamaño 94  y emplea códigos en el rango 041–0176.

       El cambio entre los conjuntos de caracteres se realiza empleando las funciones de cambio ^N (SO  o  LS1),
       ^O  (SI  o  LS0),  ESC  n (LS2), ESC o (LS3), ESC N (SS2), ESC O (SS3), ESC ~ (LS1R), ESC } (LS2R), ESC |
       (LS3R). La función LSn hace que el conjunto de caracteres Gn sea el actual para los códigos  con  el  bit
       más  alto a 0. La función LSn hace que el conjunto de caracteres Gn sea el actual para los códigos con el
       bit más alto a 1. La función SSn hace que el conjunto de caracteres Gn (n=2 ó 3) sea el  actual  para  el
       siguiente carácter solamente (tenga lo que tenga su bit más alto).

       Un  conjunto  de  94 caracteres se designa como caracter Gn definido por una secuencia de escape ESC ( xx
       (para G0), ESC ) xx ( para G1), ESC * xx (Para G2), ESC + xx ( Para G3), donde xx es un símbolo o un  par
       de  símbolos  que  se  encuentran  en  ISO/IEC 2375  Registro  Internacional  de  conjuntos de caracteres
       codificados. Por ejemplo, ESC ( @ selecciona el conjunto de caracteres  ISO/IEC 646  como  G0,  ESC  (  A
       selecciona  la  serie  de carácteres estándar del Reino Unido (con la libra en lugar del signo numérico),
       ESC ( B selecciona ASCII (con el dólar en lugar del símbolo de moneda), ESC ( M selecciona un conjunto de
       símbolos para lenguas africanas, ESC ) (!

       Un conjunto de 96 caracteres se designa como el conjunto de caracteres Gn por una secuencia de escape ESC
       - xx (para G1), ESC . xx (para G2) o ESC / xx (para G3). Por ejemplo, ESC  -  G  selecciona  el  alfabeto
       hebreo como el G1.

       Un  conjunto  de  caracteres  multibyte se designa como el conjunto de caracteres Gn por una secuencia de
       escape ESC $ xx o ESC $ ( xx (para G0), ESC $ ) xx (para G1), ESC $ * xx (para G2), ESC $ + xx (para G3).
       Por ejemplo, ESC $ ( C selecciona el conjunto de caracteres coreano para G0. El  conjunto  de  caracteres
       japonés seleccionado por ESC $ B tiene una versión más reciente seleccionada por ESC & @ ESC $ B.

       ISO/IEC 4873  estipula  un  uso  más  restrictivo  de  conjuntos de caracteres, donde G0 es fijo (siempre
       ASCII), de modo que G1, G2, y G3 sólo pueden ser invocados para códigos con el conjunto de bits de  orden
       alto.  Concretamente,   [ha]N y  ^O ya no se usan, ESC ( xx puede usarse sólo con xx=B, y ESC ) xx, ESC *
       xx, Esc + xx son equivalentes a ESC - xx, ESC. xx, ESS / xx, respectivamente.

   TIS-620
       TIS-620 es un conjunto de caracteres estándar nacional para el tailandés y un superconjunto de ASCII.  De
       la mismo modo que la serie ISO/IEC 8859, los caracteres tailandeses se mapean en 0xa1–0xfe.

   Unicode
       Unicode  (ISO/IEC  10646)  es  un  estándar  cuyo  objetivo  es representar inequívocamente cada carácter
       conocido en cada lenguaje humano. La estructura de Unicode admite 20'1 bits para codificar cada carácter.
       Sin embargo, ya que la mayoría de los computadores no incluyen enteros de 20'1 bits, normalmente  Unicode
       se  codifica  internamente mediante enteros de 32 bits y, o bien una serie de enteros de 16 bits (UTF-16)
       (que necesita dos enteros de 16 bits sólo cuando se codifican ciertos caracteres poco  comunes),  o  bien
       una serie de bytes de 8 bits (UTF-8).

       Linux  representa  Unicode empleando el Formato de Transformación Unicode de 8 bits (UTF-8). UTF-8 es una
       codificación de Unicode de longitud variable. Emplea 1 byte para codificar 7 bits, 2 bytes para 11  bits,
       3 bytes para 16 bits, 4 bytes para 21 bits, 5 bytes para 26 bits, y 6 bytes para 31 bits.

       Sean  0,  1,  x  el 0, el 1 ó un bit arbitrario. Un byte 0xxxxxxx representa el carácter Unicode 00000000
       0xxxxxxx que codifica el mismo símbolo que el ASCII 0xxxxxxx.  Así, ASCII va sin cambio alguno dentro  de
       UTF-8, y la gente que emplea ASCII no nota ningún cambio: ni en el código ni en tamaños de fichero.

       Un  byte  110xxxxx  es  el  comienzo de un código de 2 bytes, y 110xxxxx 10yyyyyy se ensambla en 00000xxx
       xxyyyyyy.  Un byte 1110xxxx es el comienzo de un código de 3  bytes,  y  1110xxxx  10yyyyyy  10zzzzzz  se
       ensambla  en xxxxyyyy yyzzzzzz.  (Cuando se emplea UTF-8 para codificar el ISO/IEC 10646 de 31 bits, esta
       progresión continúa hasta códigos de 6 bytes.)

       Para la mayoría de los textos en los conjuntos de caracteres ISO/IEC 8859, significará que los caracteres
       no ASCII están ahora codificados con dos bytes. Esto tiende a incrementar entorno al 1 o 2 por  cien  los
       archivos  de  texto  ordinarios.  Para  los textos en ruso o griego el incremento es del 100%, ya que los
       caracteres empleados son principalmente no ASCII. Para los usuarios  japoneses  esto  significa  que  los
       códigos de 16 bits tomarán tres bytes.  Si bien existen conversiones algorítmicas de algunos conjuntos de
       caracteres  (especialmente  ISO/IEC 8859-1) a Unicode, la conversión general requiere el uso de tablas de
       conversión, que pueden ser bastante grandes para códigos de 16 bits.

       Observe que UTF-8 es auto-sincronizante: 10xxxxxx es una cola, y cualquier otro byte es la cabeza  de  un
       código.  Observe  que  de  la  única  manera que los bytes ASCII aparecen en un flujo UTF-8 es como ellos
       mismos. En particular, no hay NULs ('\0') or '/'s incluidos que formen parte de algún código más grande.

       Puesto que ASCII, y, en particular, NUL y '/', permanecen inalterados, el núcleo no se entera de  que  se
       está empleando UTF-8. No le importa en absoluto para qué son los bytes que está manejando.

       La  representación  de los flujos de datos Unicode se suele gestionar a través de tablas de `subtipo' que
       hacen corresponder un subconjunto de Unicode  a  glifos.  Internamente  el  núcleo  emplea  Unicode  para
       describir  el  subtipo  de  letra  cargada en RAM de vídeo. Esto significa que en el modo UTF-8 uno puede
       emplear un conjunto de caracteres con 512 símbolos diferentes. Esto no es  suficiente  para  el  japonés,
       chino o coreano, pero si es adecuado para la mayoría de otros propósitos.

VÉASE TAMBIÉN

       iconv(1), ascii(7), iso_8859-1(7), unicode(7), utf-8(7)

TRADUCCIÓN

       La  traducción  al  español  de  esta  página  del  manual  fue  creada  por  Gerardo  Aburruzaga  García
       <gerardo.aburruzaga@uca.es>, Juan Piernas <piernas@ditec.um.es>, Miguel Pérez Ibars  <mpi79470@alu.um.es>
       y Marcos Fouces <marcos@debian.org>

       Esta  traducción  es  documentación  libre;  lea  la GNU General Public License Version 3 o posterior con
       respecto a las condiciones de copyright.  No existe NINGUNA RESPONSABILIDAD.

       Si encuentra algún error en la traducción de esta página  del  manual,  envíe  un  correo  electrónico  a
       debian-l10n-spanish@lists.debian.org.

Páginas de Manual de Linux 6.8                     2 Mayo 2024                                       charsets(7)