bionic (7) unicode.7.gz

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 combinación.  É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)