Provided by: manpages-es_1.55-10_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)