unicode(7) Miscellaneous Information Manual unicode(7)
NOME
unicode - conjunto de caracteres universal
DESCRICAO
The international standard ISO/IEC 10646 defines the Universal
Character Set (UCS). UCS contains all characters of all other
character set standards. It also guarantees "round-trip
compatibility"; in other words, conversion tables can be built such
that no information is lost when a string is converted from any other
encoding to UCS and back.
UCS contem os caracteres necessarios para representar quase todas as
linguas conhecidas. Isto inclui nao somente a latina, grega, cirilica,
hebraica, arabe, armenia e gregoriana, mas tambem chinesa, japonesa e
coreana, como tambem as escritas em ideogramas hiragana, katakana,
hangul, devangari, bengali, gurmukhi, gujarati, oriya, tamil, telugu,
kannada, malaio, thai, lao, khmer, bopomofo, tibetana, runica, etiope,
silabica canadense, cherokee, mongol, oghan, myanmar, sinhalam thaana,
yi e muitas outras. Para escritas ainda nao cobertas, pesquisas de como
se fazer a codificacao para o computador ainda sao realizadas e elas
serao eventualmente adicionadas. Isto nao inclui somente simbolos
graficos e varias linguagens historicas indo-europeias mas, tambem,
escritas artisticas como o tengwar, cirth e klingon. A UCS tambem
inclui um grande numero de simbolos graficos, tipograficos, matematicos
e cientificos, como aqueles fornecidos pelo Tex, PostScript, APL,
MS-DOS, MS-Windows, Macintosh, fontes OCR e muitos sistemas de
processamento de texto e de publicacao, e mais sera adicionado.
The UCS standard (ISO/IEC 10646) describes a 31-bit character set
architecture consisting of 128 24-bit groups, each divided into 256
16-bit planes made up of 256 8-bit rows with 256 column positions, one
for each character. Part 1 of the standard (ISO/IEC 10646-1) defines
the first 65534 code positions (0x0000 to 0xfffd), which form the Basic
Multilingual Plane (BMP), that is plane 0 in group 0. Part 2 of the
standard (ISO/IEC 10646-2) adds characters to group 0 outside the BMP
in several supplementary planes in the range 0x10000 to 0x10ffff.
There are no plans to add characters beyond 0x10ffff to the standard,
therefore of the entire code space, only a small fraction of group 0
will ever be actually used in the foreseeable future. The BMP contains
all characters found in the commonly used other character sets. The
supplemental planes added by ISO/IEC 10646-2 cover only more exotic
characters for special scientific, dictionary printing, publishing
industry, higher-level protocol and enthusiast needs.
A representacao de cada caractere UCS como uma palavra de 2 bytes e
referida pela forma UCS-2 (somente para caracteres BMP), enquanto que
UCS-4 e a representacao de cada caractere por uma palavra de 4 bytes.
Adicionalmente, existem duas formas de codificacao UTF-8 para
tratamento de compatibilidade reversa com processamento ASCII e UTF-16
para tratamento de compatibilidade reversa com caracteres que nao
estejam no BMP para 0x10ffff para UCS-2.
The UCS characters 0x0000 to 0x007f are identical to those of the
classic US-ASCII character set and the characters in the range 0x0000
to 0x00ff are identical to those in ISO/IEC 8859-1 (Latin-1).
Caracteres combinantes
Alguns pontos de codigo no UCS tem sido atribuidos aos caracteres
combinantes. Estes sao similares as teclas de acento de nao-espacamento
em uma maquina de escrever. Um caractere combinante apenas acrescenta
um acento a um caractere anterior. Os caracteres acentuados mais
importantes tem seus proprios codigos no UCS, porem o mecanismo de
caracteres combinantes permitem acrescentar acentos e outras marcas
diacriticas a qualquer caractere. Os caracteres combinantes sempre
seguem o caractere que eles modificam. Por exemplo, o caractere alemao
Umlaut-A ("letra A maiuscula com trema") pode ser representado pelo
codigo UCS pre-composto 0x00c4, ou alternativamente como a combinacao
de uma "letra A maiuscula" normal seguida de um "trema combinante":
0x0041 0x0308.
Caracteres combinantes sao essencialmente para codificar a escrita thai
ou tipografia matematica e usuarios do Alfabeto Fonetico Internacional.
Niveis de implementacao
As not all systems are expected to support advanced mechanisms like
combining characters, ISO/IEC 10646-1 specifies the following three
implementation levels of UCS:
Nivel 1 Caracteres combinantes e caracteres Hangul Jamo (uma
codificacao especial e mais complicada da escrita coreana,
onde as silabas Hangul sao codificadas como dois ou tres
codigos vogal/consoante) nao sao implementados.
Nivel 2 Em adicao ao nivel 1, caracteres combinantes sao agora
permitidos para algumas linguas, onde sao essenciais (por
exemplo, thai, lao, hebraico, arabe, devangari, malaio, etc.).
Nivel 3 Todos os caracteres UCS sao suportados.
The Unicode 3.0 Standard published by the Unicode Consortium contains
exactly the UCS Basic Multilingual Plane at implementation level 3, as
described in ISO/IEC 10646-1:2000. Unicode 3.1 added the supplemental
planes of ISO/IEC 10646-2. The Unicode standard and technical reports
published by the Unicode Consortium provide much additional information
on the semantics and recommended usages of various characters. They
provide guidelines and algorithms for editing, sorting, comparing,
normalizing, converting, and displaying Unicode strings.
Unicode no Linux
No GNU/Linux, o tipo C wchar_t e um tipo inteiro, com sinal, de 32
bits. Estes valores sao sempre interpretados pela biblioteca C como
codigo UCS (em todas as localizacoes), uma convencao que e assinalada
pela biblioteca GNU C para aplicacoes pela definicao da constante
__STDC_ISO_10646__ como especificado no padrao ISO C99.
UCS/Unicode pode ser usado como ASCII nos fluxos de entrada/saida,
comunicacao de terminais, arquivos de texto simples, nomes de arquivos
e variaveis de ambiente na codificacao multibyte UTF-8, compativel
ASCII. Para sinalizar o uso do UTF-8 como codificacao caractere para
todos aplicativos, uma localidade (locale) adequada deve ser
selecionada pela variaveis de ambiente (por exemplo,
"LANG=en_GB.UTF-8").
A funcao nl_langinfo(CODESET) retorna o nome da codificacao
selecionada. Bibliotecas de funcoes como wctomb(3) e mbsrtowcs(3) podem
ser usadas para transformar os caracteres wchar_t e strings internas na
codificacao de caracteres do sistema, e vice-versa, e wcwidth(3)
informa quantas posicoes (0-2) o cursor avanca pela saida de um
caractere.
Area de Uso Privativo (PUA)
No Plano Multilingue Basico, a faixa de 0xe000 ate 0xf8ff nunca sera
atribuida a qualquer caractere pelo padrao, e e reservada para uso
privativo. Para a comunidade Linux, esta area privativa foi dividida na
faixa de x0e000 ate 0xefff, que pode ser usada individualmente por
algum usuario final, e a zona Linux na faixa de 0xf000 ate 0xf8ff, onde
as extensoes sao coordenadas entre todos os usuarios Linux. O registro
dos caracteres atribuidos a zona Linux e mantido por LANANA e o
registro em si e Documentation/admin-guide/unicode.rst no codigo-fonte
do kernel Linux (ou Documentation/unicode.txt antes do Linux 4.10).
Dois outros planos estao reservados para uso privativo: plano 15
(Area-A de Uso Privativo Suplementar, faixa de 0xf0000 ate 0xffffd) e
plano 16 (Area-B de Uso Privativo Suplementar, faixa de 0x100000 ate
0x10fffd).
Literatura
o 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, Genebra, 2000.
Esta e a especificacao oficial do UCS. Disponivel em
.
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: Um Manual de Referencia. Quarta edicao,
Prentice Hall, Englewood Cliffs, 1995, ISBN 0-13-326224-3.
Um bom livro de referencia sobre a linguagem de programacao C. A
quarta edicao agora cobre tambem a Emenda de 1994 para o padrao ISO
do C 90, que acrescenta um grande numero de novas funcoes da
biblioteca C para manipulacao de conjuntos de caracteres largos e
multi-bytes, mas ele nao cobre a ISO C 99, que aprimora o suporte a
caracteres largos e multi-bytes.
o Relatorios tecnicos Unicode.
o Markus Kuhn: UTF-8 e Unicode FAQ para UNIX/Linux.
o Bruno Haible: Unicode HOWTO.
VEJA TAMBEM
locale(1), setlocale(3), charsets(7), utf-8(7)
TRADUCAO
A traducao para portugues brasileiro desta pagina man foi criada por
Rubens de Jesus Nogueira , Andre Luiz Fassone
e Rafael Fontenelle .
Esta traducao e uma documentacao livre; leia a Licenca Publica Geral
GNU Versao 3 ou posterior
para as condicoes de direitos autorais. Nenhuma responsabilidade e
aceita.
Se voce encontrar algum erro na traducao desta pagina de manual, envie
um e-mail para a lista de discussao de tradutores
.
Linux man-pages 6.9.1 2 maio 2024 unicode(7)