Provided by: manpages-es_4.18.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.

       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 caracter. 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
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ 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⟩.