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

NOMBRE

       Unicode - el Conjunto de Caracteres Universal

DESCRIPCI'ON

       El  estandar  internacional  ISO 10646 define el conjunto de caracteres
       UCS (Universal Character Set - Conjunto de Caracteres Universal).   UCS
       contiene  todos  los  caracteres  de  todos  los  demas  estandares  de
       conjuntos de caracteres. Tambien garantiza una compatibilidad de ida  y
       vuelta (round-trip), es decir, se pueden construir tablas de conversion
       de tal forma que no se pierda ninguna informacion cuando una cadena  se
       convierta desde cualquier otra codificacion a UCS y viceversa.

       UCS  contiene  los caracteres necesarios para representar practicamente
       todos los lenguajes conocidos.  Esto  incluye  no  solo  los  alfabetos
       latino,  griego,  cirilico,  arabe,  armenio  y  georgiano sino tambien
       chino, japones y la variante Han de los ideogramas coreanos  ademas  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 aun no cubiertos, todavia se esta investigando como
       codificarlos de la mejor manera posible para su uso en  computadores  y
       finalmente   se  anadiran.  Al  final,  esto  podria  incluir  no  solo
       jeroglificos y varios lenguajes indo-europeos historicos  sino  incluso
       algunos  alfabetos  artisticos  seleccionados  como  Tengwar,  Cirth  y
       Klingon. UCS abarca  tambien  un  gran  numero  de  simbolos  graficos,
       tipograficos,   matematicos   y   cientificos,  que  incluyen  aquellos
       provistos por TeX,  Postscript,  APL,  MS-DOS,  MS-Windows,  Macintosh,
       fuentes  OCR,  asi  como  varios  sistemas  de procesamiento de texto y
       publicacion, sin incluir los que se anaden cada dia.

       El estandar 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  caracter. La primera parte del estandar (ISO
       10646-1) define las primeras 65534 posiciones de los codigos (0x0000  a
       0xfffd),   que   forman  el  BMP  (Basic  Multilingual  Plane  -  Plano
       Multiling"ue B'asico), que es el plano 0 en el grupo 0. La segunda  parte
       del estandar (ISO 10646-2) anade caracteres al grupo 0 fuera del BMP en
       varios planos adicionales en el rango de 0x10000  a  0x10ffff.  No  hay
       intenciones  de anadir caracteres al estandar mas alla de 0x10ffff, por
       consiguiente, de todo el espacio  de  codigos,  solamente  una  pequena
       fraccion  del  grupo 0 sera 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
       anadidos por ISO 10646-2 abarcan  solo  mas  caracteres  exoticos  para
       necesidades   cientificas   especiales,   impresion   de  diccionarios,
       industria de la publicacion, protocolos de mas alto nivel y necesidades
       entusiastas.

       La  representacion  de cada caracter UCS como una palabra de 2 bytes es
       referida como la forma UCS-2 (solo para caracteres BMP),  mientras  que
       UCS-4  es  la  representacion  de  cada  caracter como una palabra de 4
       bytes.   Ademas,  existen  dos  formas  de  codificacion,   UTF-8   por
       compatibilidad  hacia  atras con software que maneje ASCII y UTF-16 por
       compatibilidad hacia atras con software  UCS-2  que  maneje  caracteres
       fuera del BMP por debajo de 0x10ffff.

       Los caracteres UCS del 0x0000 al 0x007f son identicos a los del clasico
       conjunto de caracteres US-ASCII y los caracteres en el rango de  0x0000
       a  0x00ff  son  identicos  a  los del conjunto de caracteres ISO 8859-1
       Latin-1.

CARACTERES DE COMBINACI'ON

       Algunos  codigos  en  UCS  han  sido  asignados  como   caracteres   de
       combinaci'on.  Estos son similares a las teclas de acento en una maquina
       de escribir.  Un caracter  de  combinacion  solo  anade  un  acento  al
       caracter  previo.   Los  caracteres  acentuados  mas importantes tienen
       codigos propios en UCS, sin embargo, el  mecanismo  de  combinacion  de
       caracteres   permite  anadir  acentos  y  otras  marcas  diacriticas  a
       cualquier caracter. Los caracteres de  combinacion  siempre  siguen  al
       caracter al cual modifican. Por ejemplo, en aleman el caracter Umlaut-A
       ("A mayuscula con dieresis") puede representarse por  el  ya  compuesto
       codigo  UCS  0x00c4,  o  alternativamente como la combinacion de una "A
       mayuscula" normal seguida por una  "dieresis  de  combinacion":  0x0041
       0x0308.

       Los  caracteres  de  combinacion  son  esenciales  para,  por  ejemplo,
       codificar el alfabeto Tai o para tipografia matematica y para  usuarios
       del Alfabeto Fonetico Internacional.

NIVELES DE IMPLEMENTACI'ON

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

       Nivel 1  Los  caracteres  de  combinacion y caracteres Hangul Jamo (una
                codificacion especial del coreano, en la que un glifo  (glyph)
                de  una  silaba  Hangul se codifica como una terna o un par de
                codigos de vocal/consonante) no estan implementados.

       Nivel 2  Ademas  de  los  del  nivel  1,  se  permiten  caracteres   de
                combinacion  para  algunos  idiomas  donde resultan esenciales
                (p.ej., Tai, Lao, hebreo, arabe, Devangari, Malayalam, etc.).

       Nivel 3  Todos los caracteres de UCS estan soportados.

       El estandar Unicode 3.0 publicado por  el  Consorcio  Unicode  contiene
       exactamente  el  Plano  Multiling"ue B'asico UCS implementado al nivel 3,
       segun se describe en ISO 10646:2000.   Unicode  3.1  anade  los  planos
       adicionales de ISO 10646-2. El estandar Unicode y los informes tecnicos
       publicados por el  Consorcio  Unicode  proporcionan  mucha  informacion
       adicional  sobre  la  semantica  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 codigos UCS (en todas las localizaciones), una convencion que es
       notificada por la biblioteca C de GNU a las aplicaciones definiendo  la
       constante  __STDC_ISO_10646__ tal como se especifica en el estandar ISO
       C 99.

       El estandar UCS/Unicode puede ser utilizado exactamente  igual  que  el
       ASCII  en  flujos  de  entrada/salida,  comunicacion  con  la terminal,
       ficheros en texto plano, nombres de fichero y variables de  entorno  en
       la  codificacion  multibyte UTF-8 compatible con ASCII. Para indicar el
       uso de UTF-8 como codificacion de caracteres a todas las  aplicaciones,
       debe  seleccionarse una localizaci'on adecuada a traves de las variables
       de entorno (p.ej., "LANG=en_GB.UTF-8").

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

       En  Linux, por el momento solo se debe usar el BMP de nivel 1.  Tambien
       estan soportados por algunos emuladores de terminal UTF-8 y fuentes ISO
       10646  (nivel  2) hasta dos caracteres de combinacion por caracter base
       para algunos  alfabetos  (en  particular  Tai),  pero  en  general  son
       preferibles,    siempre   que   esten   disponibles,   los   caracteres
       precompuestos (Unicode llama a esto Normalization Form C).

'AREA PRIVADA

       En el BMP, en el rango de 0xe000 a 0xf8ff ningun  caracter  sera  nunca
       asignado por el estandar y dicha zona se reserva para uso privado. Para
       la comunidad Linux, esta area privada ha sido subdividida aun mas 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 especificacion oficial de UCS.  Esta 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 programacion C. La cuarta
         edicion abarca la Enmienda 1 de 1994 al estandar ISO C 90, que  anade
         un  gran numero de nuevas funciones a la biblioteca de C para manejar
         codificaciones de caracteres anchos y  multibyte,  pero  que  aun  no
         cubre  el  estandar  ISO  C 99, que mejoro el soporte para caracteres
         anchos y multibyte aun mas.

       * 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 informacion de suscripcion 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 pagina de manual fue revisada por ultima 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 mayoria editores) que hicieran un uso
       adecuado de localizaciones UTF-8 estaba aun 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 combinacion impactantes (overstriking), pero normalmente
       no incluye soporte para alfabetos en los que se escribe  de  derecha  a
       izquierda  o con sustitucion de ligaduras como el hebreo, el arabe y el
       hidu.  Estos alfabetos estan soportados actualmente  solo  por  ciertas
       aplicaciones   graficas  (visores  HTML,  procesadores  de  texto)  con
       sofisticados motores de visualizacion de texto.

AUTOR

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

V'EASE TAMBI'EN

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