Provided by: manpages-es_4.21.0-2_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.

       Se incluye información acerca de ASCII, GB 2312, ISO 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, Código Estándar Americano para el Intercambio
       de Información) es el conjunto de caracteres original de 7 bits, diseñado  inicialmente  para  el  inglés
       americano. También llamado ASCII-US. Actualmente se describe en el estándar ISO 646:1991 IRV.

       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 8859
       ISO 8859 es una serie de 15 conjuntos de caracteres de 8 bits, los cuales tienen como su primera mitad (7
       bits) el ASCII, caracteres de control invisibles en las posiciones 128 a 159, y 96 gráficos  fijos  desde
       la posición 160 hasta la 255.

       El más importante es ISO 8859-1 (Alfabeto Latino nº1 / Latin-1). Fue ampliamente implementado en diversos
       sistemas  y  está  siendo  gradualmente  sustituido  por  Unicode.  Los  primeros  256 caracteres de esta
       codificación coinciden con los 256 primeros caracteres de Unicode.

       El soporte de consola para los otros conjuntos de caracteres 8859 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/VGA y emplean la tabla de tipos de letra  de  "correspondencia  de  usuario"  en  el  controlador  de
       consola.

       Aquí se presentan breves descripciones de cada conjunto:

       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  neerlandesa  IJ/ij,  de  la  francesa  œ  y  de  las antiguas comillas alemana „“ se
              consideraba aceptable.

       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 ş/ţ.

       8859-3 (Latin-3)
              Latin-3 fue creado para el esperanto,  el  maltés  y  el  turco  aunque  posteriormente  el  turco
              emplearía 8859-9.

       8859-4 (Latin-4)
              Latin-4  introdujo  letras  para idiomas del norte de Europa como el estonio, letón y lituano. Fue
              reemplazado por 8859-10 (Latin-6) y 8859-13 (Latin 7).

       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.

       8859-6 Para  el  árabe.  La  tabla de glifos 8859-6 es un tipo fijo de formas de letra separadas, pero un
              mecanismo de visualización correcto debería combinar éstas usando las formas iniciales,  medias  y
              finales apropiadas.

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

       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.

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

       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.

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

       8859-12
              Esta codificación no existe.

       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.

       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.

       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.

       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
       El  KOI8-R  es  un  conjunto  de  caracteres no ISO popular en Rusia antes de la aparición de Unicode. La
       primera mitad es el US ASCII; la segunda es un conjunto de caracteres cirílico algo mejor diseñado que el
       ISO 8859-5. KOI8-U está basado en KOI8-R, con un mejor soporte para el ucraniano.  A  diferencia  de  las
       series ISO 8859 , ninguno de estos conjuntos es compatible con el estándar ISO-2022.

       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 popular en Taiwan para expresar chino tradicional. (Big5 es  tanto  un
       conjunto  de caracteres como una codificación.) Es un superconjunto del ASCII US. Los caracteres no ASCII
       se expresan con dos bytes. Los bytes 0xa1–0xfe se usan como primer byte en los caracteres de  dos  bytes.
       Big5 y sus extensiones se usan ampliamente en Taiwan y Hong Kong. No cumple con el estándar ISO-2022.

   JIS X 0208
       JIS  X  0208  es  un  conjunto  nacional  estándar  de caracteres japoneses. Aunque hay algunos conjuntos
       nacionales estándares más de caracteres japoneses (como JIS X 0201, JIS X 0212 y JIS X 0213), éste es  el
       más  importante. Los caracteres se proyectan en una matriz de 94x94 celdas de 2 bytes, donde cada byte se
       encuentra en el rango 0x21–0x7e. Dese cuenta que JIS  X  0208  es  un  conjunto  de  caracteres,  no  una
       codificación.  Esto significa que el propio JIS X 0208 no se usa para expresar datos de texto. JIS X 0208
       se usa como un componente para construir codificaciones como EUC-JP, Shift_JIS y ISO-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 con 2 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 nacional estándar  de  caracteres  coreanos.  Al  igual  que  JIS  X  0208,  los
       caracteres  se proyectan en una matriz de 94x94 celdas de 2 bytes. KS X 1001 se usa como JIS X 0208, como
       un componente para construir codificaciones  tales  como  EUC-KR,  Johab  e  ISO-2022-KR.  EUC-KR  es  la
       codificación  más importante para Linux e incluye ASCII y KS X 1001. KS C 5601 es el antiguo nombre de KS
       X 1001.

   ISO 2022 y ISO 4873
       Los estándares ISO 2022 y 4873 describen un modelo de control de tipo de letra basado en la  VT100.  Este
       modelo  es  (parcialmente)  admitido  por  el  núcleo  de  Linux  y  por xterm(1). Se han definido varias
       codificaciones basadas en ISO 2022, sobretodo 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 el conjunto de caracteres Gn 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 del Registro Internacional de Conjuntos de Caracteres Codificados ISO 2375. Por ejemplo,
       ESC ( @ selecciona el conjunto de caracteres ISO 646 como el G0,  ESC  (  A  selecciona  el  conjunto  de
       caracteres  estándar de R.U. (con la libra esterlina en lugar del signo numeral #), ESC ( B selecciona el
       ASCII (con el dólar $ en lugar del símbolo monetario ¤), ESC ( M selecciona  un  conjunto  de  caracteres
       para lenguas africanas, ESC ( ! selecciona el conjunto de caracteres cubano, etc. etc. etc.

       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 4873 estipula un uso más reducido de conjuntos de caracteres, donde G0 está fijo (siempre ASCII),  de
       modo  que  G1, G2 y G3 sólo pueden ser llamados para códigos con el bit más alto a 1. En particular, ^N y
       ^O ya no se usan más, ESC ( xx sólo puede emplearse con xx=B y  ESC  )  xx,  ESC  *  xx,  ESC  +  xx  son
       equivalentes a ESC - xx, ESC . xx, ESC / xx, respectivamente.

   TIS-620
       TIS-620 es un conjunto nacional estándar de caracteres tailandeses y un superconjunto del ASCII. Al igual
       que las series ISO 8859, los caracteres tailandeses se proyectan en el rango 0xa1–0xfe.

   Unicode
       Unicode (ISO 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  10646  de  31  bits,  esta
       progresión continúa hasta códigos de 6 bytes.)

       Para  la  mayoría  de  los  textos  que usan los conjuntos de caracteres ISO-8859, esto significa que los
       caracteres fuera de ASCII se codifican ahora con dos bytes. Esto tiende a expandir los ficheros de  texto
       ordinarios en sólo un 1 o 2%. Para el ruso y el griegos, esto expande los ficheros de texto ordenarios en
       un  100%,  ya  que  el  texto  en  estos  idiomas se encuentra en su mayor parte fuera de ASCII. Para los
       usuarios japoneses esto significa que los códigos de 16 bits de uso común  actualmente  necesitarán  tres
       bytes.  Aunque  hay  conversiones  algorítmicas desde algunos conjuntos de caracteres (esp. ISO-8859-1) a
       Unicode, una conversión general requiere trabajar con tablas de conversión que puede ser bastante grandes
       para los 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.03                  5 Febrero 2023                                      charsets(7)