Provided by: manpages-pt_20040726-2_all bug

NOME

       Unicode - o superconjunto unificado de caracteres de 16 bits

DESCRIÇÃO

       O  padrão  internacional  ISO  10646  define  o Universal Character Set
       (UCS).  UCS contém todos os caracteres de todos os  outros  padrões  de
       conjuntos   de   caracteres.   Ele  também  garante  a  compatibilidade
       retroativa ,isto é, as tabelas de conversão podem  ser  construídas  de
       forma   que  nenhuma  informação  seja  perdida  quando  uma  string  é
       convertida de qualquer outra codificação para UCS e vice-versa.

       UCS contém os caracteres requeridos para  representar  quase  todas  as
       línguas  conhecidas.  Isto  inclui  a  maioria  das  línguas  que  usam
       extensões da escrita latina, e também as seguintes escritas e  línguas:
       grego, cirílico, hebraico, árabe, armênio, gregoriano, japonês, chinês,
       hiragana, katakana,  coreano,  hangul,  devangari,  bengali,  gurmukhi,
       gujarati, oriya, tamil, telugu, kannada, malaio, thai, lao, bopomofo, e
       um muitas outras. Trabalha-se para que sejam incluídos  mais  escritas,
       como tibetano, khmer, rúnico, etíope, hieróglifos, várias línguas indo-
       européias, e muitas outras. Para muitas dessas escritas  mais  antigas,
       ainda  não era claro como elas poderiam ser codificadas melhor quando o
       padrão foi publicado, em 1993. Além dos caracteres requeridos por essas
       escritas,   foi   incluído  um  grande  número  de  símbolos  gráficos,
       tipográficos, matemáticos e científicos, como aqueles  fornecidos  pelo
       Tex,  PostScript, MS-DOS, Macintosh, Videotexto, OCR, e muitos sistemas
       de processamento de texto,  além  de  códigos  especiais  que  garantem
       compatibility  retroativa  para todos os outros padrões de conjuntos de
       caracteres existentes.

       O padrão UCS (ISO  10646)  descreve  uma  arquitetura  de  conjunto  de
       caracteres de 31 bits, porém hoje apenas as primeiras 65534 posições de
       código (0x0000 to 0xfffd),  que  são  chamadas  de  Plano  Multilingual
       Básico  (Basic  Multilingual  Plane  -  BMP), receberam a atribuição de
       caracteres, e é esperado que somente  caracteres  muito  exóticos  (por
       exemplo,  hieróglifos)   para  propósitos  científicos  especiais terão
       lugar fora desse BMP de 16 bits.

       Os caracteres UCS de 0x0000 a 0x007f são idênticos àqueles do  conjunto
       clássico  de caracteres US-ASCII , e os caracteres na faixa de 0x0000 a
       0x00ff são idênticos àqueles  no  conjunto  de  caracteres  ISO  8859-1
       Latin-1

COMBINANDO CARACTERES

       Alguns  pontos  de  código  no  UCS  têm sido atribuídos aos caracteres
       combinantes.   Estes  são  similares  às  chaves  de  acento  de   não-
       espaçamento  em uma máquina de escrever. Um caractere combinante apenas
       acrescenta um acento a um caractere anterior.  Os caracteres acentuados
       mais importantes têm seus próprios códigos em UCS, porém o mecanismo de
       caracteres combinantes permitem acrescentar  acentos  e  outras  marcas
       diacríticas  a  qualquer  caractere.  Os caracteres combinantes sempres
       seguem o caractere que eles modificam. Por exemplo, o caractere  alemão
       Umlaut-A  ("letra  A maiúscula com trema") pode ser representada por um
       código UCS pré-composto 0x00c4, ou alternativamente como  a  combinação
       de  uma  "letra  A  maiúscula" normal seguida de um "trema combinante":
       0x0041 0x0308.

NÍVEIS DE IMPLEMENTAÇÃO

       Como nem todo sistema suporta  mecanismos  avançados,  como  caracteres
       combinantes,  a  ISO  10646  especifica  os  três  seguintes  níveis de
       implementação da UCS:

       Nível 1  Caracteres  combinantes  e  caracteres   Hangul   Jamo    (uma
                codificação  especial  e  mais  complicada da escrita coreana,
                onde as sílabas Hangul  são  codificadas  como  dois  ou  três
                subcaracteres) não são implementados.

       Nível 2  Como  o  nível 1, porém em algumas escritas, alguns caracteres
                combinantes são permitidos (por exemplo, para hebraico, árabe,
                devangari,  bengali, gurmukhi, gujarati, oriya, tamil, telugo,
                kannada, malaio, thai e lao).

       Nível 3  Todos os caracteres UCS são suportados.

       O  padrão  Unicode  1.1  publicado  pelo  Unicode   Consortium   contém
       exatamente   o   Plano  Multilingual  Básico  da  UCS  no  nível  3  de
       implementação, como  descrito  na  ISO  10646.  O  Unicode  1.1  também
       acrescenta algumas definições semânticas para alguns caracteres para as
       definições da ISO 10646.

UNICODE SOB LINUX

       Sob o Linux, somente o nível de implementação 1 do BMP deve  ser  usado
       no  momento,  de  forma  a  manter  a complexidade de implementação dos
       caracteres combinantes baixos. Os níveis de  implementação  mais  altos
       são  mais confiáveis para formatos especiais de formatação de palavras,
       mas não como um conjunto de caracteres de um sistema genérico.  O  tipo
       do  C  wchar_t é, em Linux, um tipo inteiro de 32 bits com sinal, e seu
       valor é interpretado como um código UCS4

       A configuração do locale especifica se a codificação  de  caractere  do
       sistema  é,  por  exemplo, UTF-8 ou ISO 8859-1.  Funções de biblioteca,
       como wctomb, mbtowc, ou wprintf podem ser usadas  para  transformar  os
       caracteres  e  strings wchar_t internos em codificação de caracteres do
       sistema, e vice-versa.

ÁREA PRIVATIVA

       No BMP, a faixa de 0xe000 a 0xf8ff  nunca  será  atribuída  a  qualquer
       caractere  pelo  padrão,  e  é  reservada  para  uso  privativo. Para a
       comunidade Linux, esta área privativa foi dividida nas faixas: x0e000 a
       0xefff pode ser usada individualmente por algum usuário final; e a zona
       Linux da faixa de 0xf000 a 0xf8ff onde  as  extensões  são  coordenadas
       entre  todos  os usuários Linux. O registro dos caracteres atribuídos à
       zona   Linux   é   mantido    atualmente    por    H.    Peter    Anvin
       <Peter.Anvin@linux.org>,  Yggdrasil  Computing,  Inc. Ele contém alguns
       caracteres gráficos do VT100 da DEC, perdidos  no  Unicode,  dá  acesso
       direto  aos  caracteres  no  buffer  de  fontes do console, e contém os
       caracteres usados por escritas um pouco avançadas, como o Klingon.

LITERATURA

       * Tecnologia  da  informação  -  Conjunto   Universal   de   Caracteres
         Codificados em Múltiplos Octetos (UCS) - Parte 1: Arquitetura e Plano
         Multilingual Básico.  Padrão Internacional ISO  10646-1,  Organização
         Internacional para Padronização, Genebra, 1993.

         Esta é a especificação oficial do UCS.  Bem oficial, bem denso, e bem
         caro. Para informações sobre encomenda, verifique www.iso.ch.

       * O Padrão Unicode - Codificação Mundial de Caracteres Versão  1.0.   O
         Consórcio Unicode, Addison-Wesley, Reading, MA, 1991.

         Já existe o Unicode 1.1.4 disponível. As mudanças para o livro do 1.0
         estão disponíveis a partir de ftp.unicode.org.  O  Unicode  2.0  será
         publicado novamente como um livro em 1996.

       * S.  Harbison,  G. Steele. C - Um Manual de Referência. Quarta edição,
         Prentice Hall, Englewood Cliffs, 1995, ISBN 0-13-326224-3.

         Um bom livro de referência sobre a  linguagem  de  programação  C.  A
         quarta  edição  agora cobre também a Emenda de 1994 para o padrão ISO
         do C (ISO/IEC 9899:1990), que acrescenta um grande  número  de  novas
         funções  da  biblioteca  C  para  manipulação de grandes conjuntos de
         caracteres.

PROBLEMAS

       No momento em que esta página de manual foi escrita, o suporte da  libc
       do Linux para o UCS estava longe de estar completo.

AUTOR

       Markus Kuhn <mskuhn@cip.informatik.uni-erlangen.de>

VEJA TAMBÉM

       utf-8(7)

TRADUZIDO POR LDP-BR em 21/08/2000.

       Rubens  de  Jesus  Nogueira  <darkseid99@usa.net>  (tradução)  André L.
       Fassone Canova <lonelywolf@blv.com.br> (revisão)