UTF-8
Série Unicode |
Unicode
|
UCS |
UTF-7 |
UTF-8 |
UTF-16 |
UTF-32/UCS-4 |
SCSU |
Punycode |
UTF-8(8-bitUnicode Transformation Format) é um tipo de codificação binária (Unicode) de comprimento variável criado porKen ThompsoneRob Pike.[1][2]Pode representar qualquer caractere universal padrão do Unicode, sendo também compatível com oASCII.Por esta razão, está lentamente a ser adaptado como tipo de codificação padrão para e-mail, páginas web, e outros locais onde os caracteres são armazenados.
UTF-8 usa de um a quatrobytes(estritamente, octetos) por caractere, dependendo do símbolo Unicode que representa. É necessário apenas um byte para codificar os 128 caracteres ASCII (Unicode U+0000 a U+007F). São necessários dois bytes para caracteres Latinos comdiacríticos.São também usados dois bytes para representar caracteres dos alfabetosGrego,Cirílico,Armênio,Hebraico,Sírio e Thaana (Unicode U+0080 a U+07FF). São necessários três bytes para o resto doPlano Multilingual Básico(que contém praticamente todos os caracteres comuns utilizados). Existem ainda outros caracteres que necessitam de quatro bytes.
Quatro bytes pode parecer muito para um caractere ( "code point" ), mas muito raramente são utilizados. Além disso,UTF-16(a principal alternativa ao UTF-8) necessita também de quatro bytes para estes "code points". A definição de qual dos dois é mais eficiente (UTF-8 ou UTF-16) depende da variedade de "code points" usados. Contudo, as diferenças entre os vários tipos de codificação tornam-se irrelevantes com o uso de sistemas de compressão como oDEFLATE.Para textos curtos nos quais os tradicionais algoritmos não funcionam bem e se faz necessário ter o tamanho em consideração, é geralmente usado o Esquema Padrão de Compressão para Unicode (Standard Compression Scheme for Unicode).
O "Internet Engineering Task Force"(IETF) requer que todos os protocolos utilizados na Internet suportem, pelo menos, o UTF-8. O" Internet Mail Consortium "(IMC)[1]recomenda que todos os clientes de e-mail consigam ler e criar mails usando o UTF-8.
História
[editar|editar código-fonte]UTF-8 foi criado porKen Thompsonno dia 2 de setembro de 1992, num restaurante de Nova Jersey, juntamente comRob Pike.No dia seguinte, Pike e Thompson implementaram-no e atualizaram o seu sistema operacionalPlan 9para passar a usá-lo.
UTF-8 foi anunciado formalmente numa conferência USENIX em San Diego, que decorreu de 25 a 29 de janeiro de 1993.
As especificações daMicrosoftpara o Cab (MS Cabinet) de 1996 aceitam o uso de strings codificadas com o UTF-8 (apesar de ter sido lançado antes de o UTF-8 ter um padrão estabelecido), mas nunca chegou a ser implementado.
Descrição
[editar|editar código-fonte]Existem várias definições, ligeiramente diferentes, do UTF-8 em vários documentos de padrões:
- RFC 3629/ STD 63 (2003), que estabelece o UTF-8 como um elemento padrão do protocolo da Internet
- The Unicode Standard, Version 4.0 (Padrão Unicode, Versão 4.0),§3.9-§3.10 (2003)
- ISO/IEC 10646-1:2000 Anexo D (2000)
Substituem assim as definições prévias, já obsoletas:
- ISO/IEC 10646-1:1993 Emenda 2 / Anexo R (1996)
- The Unicode Standard, Version 2.0 (Padrão Unicode, Versão 2.0),Apêndice A (1996)
- RFC 2044(1996)
- RFC 2279(1998)
- The Unicode Standard, Version 3.0 (Padrão Unicode, Versão 3.0),§2.3 (2000) mais Correcção #1: UTF-8 Shortest Form (UTF-8, Forma Mais Curta) (2000)
- The Unicode Standard (Padrão Unicode), Anexo #27: Unicode 3.1(2001)
Todos são idênticos no seu funcionamento, diferindo apenas na escala de "code points" usados, e na manipulação segura deinputinválido. Os bits de um caractere Unicode são divididos em vários grupos, que são depois divididos entre as posições mais baixas dentro dos bytes do UTF-8.
Um caractere com um "code point" abaixo de U+0080 é codificado com apenas um byte que contém o seu "code point": estes correspondem exactamente aos 128 caracteres do ASCII de 7-bit. Noutros casos, são necessários até quatro bytes. O mais alto destes é 1, para evitar confusão com os caracteres do ASCII de 7-bit, e assim manter seguro o processamento das strings padrão orientadas a bytes.
Referências
- ↑Pike, Rob.«UTF-8 history»
- ↑Pike, Rob; Thompson, Ken (1993).«Hello World or Καλημέρα κόσμε or こんにちは thế giới »(PDF).Proceedings of the Winter 1993 USENIX Conference.[S.l.: s.n.]