Provided by: manpages-es_1.55-9_all bug

NOMBRE

       Unicode - el Conjunto de Caracteres Universal

DESCRIPCIÓN

       El  estándar  internacional  ISO 10646 define el conjunto de caracteres
       UCS (Universal Character Set - Conjunto de Caracteres Universal).   UCS
       contiene  todos  los  caracteres  de  todos  los  demás  estándares  de
       conjuntos de caracteres. También garantiza una compatibilidad de ida  y
       vuelta (round-trip), es decir, se pueden construir tablas de conversión
       de tal forma que no se pierda ninguna información cuando una cadena  se
       convierta desde cualquier otra codificación a UCS y viceversa.

       UCS  contiene  los caracteres necesarios para representar prácticamente
       todos los lenguajes conocidos.  Esto  incluye  no  sólo  los  alfabetos
       latino,  griego,  cirílico,  árabe,  armenio  y  georgiano sino también
       chino, japones y la variante Han de los ideogramas coreanos  además  de
       alfabetos   como   Hiragana,  Katakana,  Hangul,  Devanagari,  Bengali,
       Gurmukhi, Gujarati, Oriya, Tamil,  Telugu,  Kannada,  Malayalam,  Thai,
       Lao,  Khmer,  Bopomofo,  Tibetan,  Runic, Ethiopic, Canadian Syllabics,
       Cherokee, Mongolian, Ogham, Myanmar, Sinhala, Thaana, Yi y otros.  Para
       aquellos  alfabetos aún no cubiertos, todavía se está investigando cómo
       codificarlos de la mejor manera posible para su uso en  computadores  y
       finalmente   se  añadirán.  Al  final,  esto  podría  incluir  no  sólo
       jeroglíficos y varios lenguajes indo-europeos históricos  sino  incluso
       algunos  alfabetos  artísticos  seleccionados  como  Tengwar,  Cirth  y
       Klingon. UCS abarca  también  un  gran  número  de  símbolos  gráficos,
       tipográficos,   matemáticos   y   científicos,  que  incluyen  aquellos
       provistos por TeX,  Postscript,  APL,  MS-DOS,  MS-Windows,  Macintosh,
       fuentes  OCR,  así  como  varios  sistemas  de procesamiento de texto y
       publicación, sin incluir los que se añaden cada día.

       El estándar UCS (ISO 10646) describe una arquitectura del  conjunto  de
       caracteres  de  31 bits que consiste en 128 grupos de 24 bits, cada uno
       dividido en 256 planos de 16  bits  formados  por  256  filas  con  256
       columnas,  una  por  cada  carácter. La primera parte del estándar (ISO
       10646-1) define las primeras 65534 posiciones de los códigos (0x0000  a
       0xfffd),   que   forman  el  BMP  (Basic  Multilingual  Plane  -  Plano
       Multilingüe Básico), que es el plano 0 en el grupo 0. La segunda  parte
       del estándar (ISO 10646-2) añade caracteres al grupo 0 fuera del BMP en
       varios planos adicionales en el rango de 0x10000  a  0x10ffff.  No  hay
       intenciones  de añadir caracteres al estándar más allá de 0x10ffff, por
       consiguiente, de todo el espacio  de  códigos,  solamente  una  pequeña
       fracción  del  grupo 0 será usada realmente en un futuro previsible. El
       BMP contiene todos los  caracteres  que  se  encuentran  en  los  otros
       conjuntos  de caracteres usados frecuentemente.  Los planos adicionales
       añadidos por ISO 10646-2 abarcan  sólo  más  caracteres  exóticos  para
       necesidades   científicas   especiales,   impresión   de  diccionarios,
       industria de la publicación, protocolos de más alto nivel y necesidades
       entusiastas.

       La  representación  de cada carácter UCS como una palabra de 2 bytes es
       referida como la forma UCS-2 (sólo para caracteres BMP),  mientras  que
       UCS-4  es  la  representación  de  cada  carácter como una palabra de 4
       bytes.   Además,  existen  dos  formas  de  codificación,   UTF-8   por
       compatibilidad  hacia  atrás con software que maneje ASCII y UTF-16 por
       compatibilidad hacia atrás con software  UCS-2  que  maneje  caracteres
       fuera del BMP por debajo de 0x10ffff.

       Los caracteres UCS del 0x0000 al 0x007f son idénticos a los del clásico
       conjunto de caracteres US-ASCII y los caracteres en el rango de  0x0000
       a  0x00ff  son  idénticos  a  los del conjunto de caracteres ISO 8859-1
       Latin-1.

CARACTERES DE COMBINACIÓN

       Algunos  códigos  en  UCS  han  sido  asignados  como   caracteres   de
       combinacin.  Éstos son similares a las teclas de acento en una máquina
       de escribir.  Un carácter  de  combinación  sólo  añade  un  acento  al
       carácter  previo.   Los  caracteres  acentuados  más importantes tienen
       códigos propios en UCS, sin embargo, el  mecanismo  de  combinación  de
       caracteres   permite  añadir  acentos  y  otras  marcas  diacríticas  a
       cualquier carácter. Los caracteres de  combinación  siempre  siguen  al
       carácter al cual modifican. Por ejemplo, en alemán el carácter Umlaut-A
       ("A mayúscula con diéresis") puede representarse por  el  ya  compuesto
       código  UCS  0x00c4,  o  alternativamente como la combinación de una "A
       mayúscula" normal seguida por una  "diéresis  de  combinación":  0x0041
       0x0308.

       Los  caracteres  de  combinación  son  esenciales  para,  por  ejemplo,
       codificar el alfabeto Tai o para tipografía matemática y para  usuarios
       del Alfabeto Fonético Internacional.

NIVELES DE IMPLEMENTACIÓN

       Puesto  que  no  se  espera  que todos los sistemas soporten mecanismos
       avanzados tales como los caracteres  de  combinación,  el  ISO  10646-1
       especifica los siguientes tres grados de implementación del UCS:

       Nivel 1  Los  caracteres  de  combinación y caracteres Hangul Jamo (una
                codificación especial del coreano, en la que un glifo  (glyph)
                de  una  sílaba  Hangul se codifica como una terna o un par de
                códigos de vocal/consonante) no están implementados.

       Nivel 2  Además  de  los  del  nivel  1,  se  permiten  caracteres   de
                combinación  para  algunos  idiomas  donde resultan esenciales
                (p.ej., Tai, Lao, hebreo, árabe, Devangari, Malayalam,  etc.).

       Nivel 3  Todos los caracteres de UCS están soportados.

       El  estándar  Unicode  3.0  publicado por el Consorcio Unicode contiene
       exactamente el Plano Multilingüe Básico UCS implementado  al  nivel  3,
       según  se  describe  en  ISO  10646:2000.  Unicode 3.1 añade los planos
       adicionales de ISO 10646-2. El estándar Unicode y los informes técnicos
       publicados  por  el  Consorcio  Unicode  proporcionan mucha información
       adicional  sobre  la  semántica  y  los  usos  recomendados  de  varios
       caracteres.  Proporcionan  pautas  y  algoritmos  para editar, ordenar,
       comparar, normalizar, convertir y mostrar cadenas Unicode.

UNICODE EN LINUX

       Bajo GNU/Linux, el tipo en C wchar_t es un tipo entero de 32  bits  con
       signo. Sus posibles valores son interpretados siempre por la biblioteca
       C como códigos UCS (en todas las localizaciones), una convención que es
       notificada  por la biblioteca C de GNU a las aplicaciones definiendo la
       constante __STDC_ISO_10646__ tal como se especifica en el estándar  ISO
       C 99.

       El  estándar  UCS/Unicode  puede ser utilizado exactamente igual que el
       ASCII en  flujos  de  entrada/salida,  comunicación  con  la  terminal,
       ficheros  en  texto plano, nombres de fichero y variables de entorno en
       la codificación multibyte UTF-8 compatible con ASCII. Para  indicar  el
       uso  de UTF-8 como codificación de caracteres a todas las aplicaciones,
       debe seleccionarse una localización adecuada a través de las  variables
       de entorno (p.ej., "LANG=en_GB.UTF-8").

       La  función  nl_langinfo(CODESET) devuelve el nombre de la codificación
       escogida.  Pueden  utilizarse  funciones  de  biblioteca   tales   como
       wctomb(3)  y  mbsrtowcs(3)  para  convertir  los  caracteres  y cadenas
       internas  wchar_t  a  la  codificación  de  caracteres  del  sistema  y
       viceversa,  y  la  función wcwidth(3) para averiguar cuantas posiciones
       (0–2) avanzó el cursor al escribir un caracter.

       En Linux, por el momento sólo se debe usar el BMP de nivel 1.   También
       están soportados por algunos emuladores de terminal UTF-8 y fuentes ISO
       10646 (nivel 2) hasta dos caracteres de combinación por  carácter  base
       para  algunos  alfabetos  (en  particular  Tai),  pero  en  general son
       preferibles,   siempre   que   estén   disponibles,   los    caracteres
       precompuestos (Unicode llama a ésto Normalization Form C).

ÁREA PRIVADA

       En  el  BMP,  en el rango de 0xe000 a 0xf8ff ningún carácter será nunca
       asignado por el estándar y dicha zona se reserva para uso privado. Para
       la comunidad Linux, esta área privada ha sido subdividida aún más en el
       rango de 0xe000 a 0xefff que puede ser utilizado a nivel particular por
       cualquier  usuario final y la zona Linux en el rango de 0xf000 a 0xf8ff
       donde las extensiones se coordinan entre todos los usuarios  de  Linux.
       El  registro  de  los caracteres asignados a la zona Linux es mantenido
       actualmente por H. Peter Anvin <Peter.Anvin@linux.org>.

LITERATURA

       * Information technology — Universal Multiple-Octet Coded Character Set
         (UCS)   —   Part   1:  Architecture  and  Basic  Multilingual  Plane.
         International Standard ISO/IEC  10646-1,  International  Organization
         for Standardization, Geneva, 2000.

         Esta es la especificación oficial de UCS.  Está disponible en fichero
         PDF o CD-ROM en http://www.iso.ch/.

       * The Unicode Standard, Version 3.0.  The Unicode Consortium,  Addison-
         Wesley, Reading, MA, 2000, ISBN 0-201-61633-5.

       * S.  Harbison,  G.  Steele.  C:  A  Reference  Manual. Fourth edition,
         Prentice Hall, Englewood Cliffs, 1995, ISBN 0-13-326224-3.

         Una buena referencia sobre el lenguaje de programación C.  La  cuarta
         edición  abarca la Enmienda 1 de 1994 al estándar ISO C 90, que añade
         un gran número de nuevas funciones a la biblioteca de C para  manejar
         codificaciones  de  caracteres  anchos  y  multibyte, pero que aún no
         cubre el estándar ISO C 99, que mejoró  el  soporte  para  caracteres
         anchos y multibyte aún más.

       * Unicode Technical Reports.
         http://www.unicode.org/unicode/reports/

       * Markus Kuhn: UTF-8 and Unicode FAQ for Unix/Linux.
         http://www.cl.cam.ac.uk/~mgk25/unicode.html

         Proporciona  información  de  suscripción a la lista de correo linux-
         utf8, que es el mejor lugar para  buscar  consejo  sobre  el  uso  de
         Unicode en Linux.

       * Bruno Haible: Unicode HOWTO.
         ftp://ftp.ilog.fr/pub/Users/haible/utf8/Unicode-HOWTO.html

FALLOS

       Cuando esta página de manual fue revisada por última vez, el soporte de
       la biblioteca C de GNU para localizaciones UTF-8 estaba ya maduro y  el
       soporte  de  XFree86  estaba en un estado avanzado, pero sin embargo el
       desarrollo de aplicaciones (en su mayoría editores) que hicieran un uso
       adecuado  de localizaciones UTF-8 estaba aún completamente en progreso.
       El soporte general actual de UCS  bajo  Linux  normalmente  proporciona
       caracteres  de  ancho  doble para CJK y algunas veces incluso sencillos
       caracteres de combinación impactantes (overstriking), pero  normalmente
       no  incluye  soporte  para alfabetos en los que se escribe de derecha a
       izquierda o con sustitución de ligaduras como el hebreo, el árabe y  el
       hidú.   Estos  alfabetos  están soportados actualmente sólo por ciertas
       aplicaciones  gráficas  (visores  HTML,  procesadores  de  texto)   con
       sofisticados motores de visualización de texto.

AUTOR

       Markus Kuhn <mgk25@cl.cam.ac.uk>

VÉASE TAMBIÉN

       utf-8(7), charsets(7), setlocale(3)