1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187
|
.\" -*- nroff -*-
.\"
.\" Copyright (C) Markus Kuhn, 1996
.\"
.\" This is free documentation; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License as
.\" published by the Free Software Foundation; either version 2 of
.\" the License, or (at your option) any later version.
.\"
.\" The GNU General Public License's references to "object code"
.\" and "executables" are to be interpreted as the output of any
.\" document formatting or typesetting system, including
.\" intermediate and printed output.
.\"
.\" This manual is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public
.\" License along with this manual; if not, write to the Free
.\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111,
.\" USA.
.\"
.\" 1995-11-26 Markus Kuhn <mskuhn@cip.informatik.uni-erlangen.de>
.\" First version written
.\"
.TH UTF-8 7 "26/11/1995" "Linux" "Manual do Programador Linux"
.SH NOME
UTF-8 \- uma codificao Unicode multibyte compatvel com ASCII
.SH DESCRIO
O conjunto de caracteres
.B Unicode
ocupa um espao de cdigo de 16 bits. A codificao Unicode
mais bvia (conhecida como
.BR UCS-2 )
consiste de uma seqncia de palavras de 16 bits. Tais strings podem conter,
em sua maior parte, bytes de caracteres de 16 bits, como '\\0' ou '/', que tm um
significado especial em nomes de arquivos e outros parmetros de funes em bibliotecas C.
Alm disso, a maioria das ferramentas UNIX esperam arquivos ASCII e no podem
ler palavras de 16 bits como caracteres sem modificaes maiores. Por essas
razes,
.B UCS-2
no uma codificao externa disponvel de
.B Unicode
em nomes de arquivos, arquivos-texto, variveis de ambiente, etc. O
.BR "ISO 10646 Universal Character Set (UCS)" ,
um superconjunto de Unicode, ocupa ainda um espao de cdigo de 31 bits e a bvia codificao
.B UCS-4
para ele (uma seqncia de palavras de 32 bits) tem o mesmo problema.
A codificao
.B UTF-8
de
.B Unicode
e
.B UCS
no tem esses problemas e a maneira de usar o conjunto de caracteres
.B Unicode
sob sistemas operacionais do estilo Unix.
.SH PROPIEDADES
A codificao
.B UTF-8
tem as seguintes belas propriedades:
.TP 0.2i
*
caracteres
.B UCS
de 0x00000000 a 0x0000007f (os clssicos caracteres \fBUS-ASCII\fP)
so codificadas simplesmente como bytes de 0x00 a 0x7f (compatibilidade
com ASCII). Isto significa que os arquivos e strings que contm somente
caracteres ASCII de 7 bits tm a mesma codificao tanto sob
.B ASCII
quanto sob
.BR UTF-8 .
.TP
*
Todos os caracteres
.B UCS
> 0x7f so codificados como uma seqncia multibyte,
consistindo somente de bytes na faixa de 0x80 a 0xfd, de forma que nenhum byte ASCII
aparea como parte de outro caractere e no haja
problemas com, por exemplo, '\\0' ou '/'.
.TP
*
A ordenao lexicogrfica das strings
.B UCS-4
preservada.
.TP
*
Todos os 2^31 cdigos UCS possveis podem ser codificados usando-se
.BR UTF-8 .
.TP
*
Os bytes 0xfe e 0xff nunca so usados na codificao
.B UTF-8
.
.TP
*
O primeiro byte de uma seqncia multibyte que representa um nico caractere
.B UCS
no-ASCII est sempre na faixa 0xc0 a 0xfd, e indica o tamanho desta
seqncia multibyte. Todos os bytes seguintes na seqncia multibyte esto
na faixa de 0x80 a 0xbf. Isto permite um ressincronismo fcil e torna a
codificao independente de estado, e robusta contra perda de bytes.
.TP
* Caracteres
.B UTF-8
codificados em
.B UCS
podem ter at seis bytes de comprimento, porm os caracteres
.B Unicode
s podem ter at trs bytes de comprimento. Como o Linux usa somente o
subconjunto
.B Unicode
de 16 bits do
.BR UCS ,
sob Linux, as seqncias multibytes
.B UTF-8
s podem ter um, dois ou trs bytes de comprimento.
.SH CODIFICAO
As seguintes seqncias de bytes so usadas para representar um caractere. A
seqncia a ser usada depende do nmero de cdigo UCS do caractere:
.TP 0.4i
0x00000000 - 0x0000007F:
.RI 0 xxxxxxx
.TP
0x00000080 - 0x000007FF:
.RI 110 xxxxx
.RI 10 xxxxxx
.TP
0x00000800 - 0x0000FFFF:
.RI 1110 xxxx
.RI 10 xxxxxx
.RI 10 xxxxxx
.TP
0x00010000 - 0x001FFFFF:
.RI 11110 xxx
.RI 10 xxxxxx
.RI 10 xxxxxx
.RI 10 xxxxxx
.TP
0x00200000 - 0x03FFFFFF:
.RI 111110 xx
.RI 10 xxxxxx
.RI 10 xxxxxx
.RI 10 xxxxxx
.RI 10 xxxxxx
.TP
0x04000000 - 0x7FFFFFFF:
.RI 1111110 x
.RI 10 xxxxxx
.RI 10 xxxxxx
.RI 10 xxxxxx
.RI 10 xxxxxx
.RI 10 xxxxxx
.PP
As posies de bit
.I xxx
so preenchidas com os bits do nmero do cdigo de caractere na representao
binria. Somente a seqncia de multibyte mais curta possvel que pode
representar o nmero do cdigo do caractere pode ser usada.
.SH EXEMPLOS
O caractere
.B Unicode
0xa9 = 1010 1001 (o sinal de copyright) codificado
em UTF-8 como
.PP
.RS
11000010 10101001 = 0xc2 0xa9
.RE
.PP
e o caractere 0x2260 = 0010 0010 0110 0000 (o smbolo de "diferente")
codificado como:
.PP
.RS
11100010 10001001 10100000 = 0xe2 0x89 0xa0
.RE
.SH PADRES
ISO 10646, Unicode 1.1, XPG4, Plan 9.
.SH AUTOR
Markus Kuhn <mskuhn@cip.informatik.uni-erlangen.de>
.SH "VEJA TAMBM"
.B unicode(7)
.SH TRADUZIDO POR LDP-BR em 21/08/2000.
\&\fR\&\f(CWRubens de Jesus Nogueira <darkseid99@usa.net> (traduo)\fR
\&\fR\&\f(CWAndr L. Fassone Canova <lonelywolf@blv.com.br> (reviso)\fR
|