unicode(7) Miscellaneous Information Manual unicode(7) NOMBRE unicode - conjunto de caracteres universal DESCRIPCION El estandar internacional ISO/IEC 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 sistemas informaticos. 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, anadiendose mas cada dia. El estandar UCS (ISO/IEC 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 Multilingue Basico), 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/IEC 8859-1 (Latin-1). Caracteres de combinacion Algunos codigos en UCS han sido asignados como caracteres de combinacion. 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 implementacion Puesto que no se espera que todos los sistemas soporten mecanismos avanzados tales como los caracteres de combinacion, el ISO/IEC 10646-1 especifica los siguientes tres niveles de implementacion de 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). Nivel 3 Todos los caracteres de UCS estan soportados. El estandar Unicode 3.0 publicado por el Consorcio Unicode contiene exactamente el Plano Multilingue Basico UCS implementado al nivel 3, segun se describe en ISO/IEC 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 locale 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. Areas de uso privado (PUA) En el BMP, 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 LANANA y el propio registro es Documentation/admin-guide/unicode.rst en le codigo fuente de Linux (o Documentation/unicode.txt antes de la version 4.10 de Linux). Dos planos mas estan reservados para uso privado, el plano 15 (Uso adicional Area-A, range de 0xf0000 a 0xffffd) y el plano 16 (Uso adicional Area-B, range de 0x100000 a 0x10fffd). Literatura o Information technology -- Universal Multiple-Octet Coded CharacterSet (UCS) -- Part 1: Architecture and Basic Multilingual Plane.International Standard ISO/IEC 10646-1, International Organizationfor Standardization, Geneva, 2000. Esta es la especificacion oficial de UCS. Esta disponible en . o The Unicode Standard, Version 3.0. The Unicode Consortium, Addison-Wesley, Reading, MA, 2000, ISBN 0-201-61633-5. o 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. o Unicode Technical Reports. o Markus Kuhn: UTF-8 and Unicode FAQ for UNIX/Linux. o Bruno Haible: Unicode HOWTO. VEASE TAMBIEN locale(1), setlocale(3), charsets(7), utf-8(7) TRADUCCION La traduccion al espanol de esta pagina del manual fue creada por Miguel Perez Ibars y Marcos Fouces Esta traduccion es documentacion libre; lea la GNU General Public License Version 3 o posterior con respecto a las condiciones de copyright. No existe NINGUNA RESPONSABILIDAD. Si encuentra algun error en la traduccion de esta pagina del manual, envie un correo electronico a . Paginas de manual de Linux 6.06 28 Enero 2024 unicode(7)