📑 Table of Contents
Série Unicode
Unicode
UCS
UTF-7
UTF-8
UTF-16
UTF-32/UCS-4
SCSU
Punycode

UTF-8 (8-bit Unicode Transformation Format) é um tipo de codificação binária (Unicode) de comprimento variável criado por Ken Thompson e Rob Pike.[1][2] Pode representar qualquer caractere universal padrão do Unicode, sendo também compatível com o ASCII. 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 quatro bytes (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 com diacríticos. São também usados dois bytes para representar caracteres dos alfabetos Grego, 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 do Plano 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 o DEFLATE. 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

UTF-8 foi criado por Ken Thompson no dia 2 de setembro de 1992, num restaurante de Nova Jersey, juntamente com Rob Pike. No dia seguinte, Pike e Thompson implementaram-no e atualizaram o seu sistema operacional Plan 9 para 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 da Microsoft para 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

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 de input invá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

  1. Pike, Rob. «UTF-8 history» 
  2. Pike, Rob; Thompson, Ken (1993). «Hello World or Καλημέρα κόσμε or こんにちは 世界» (PDF). Proceedings of the Winter 1993 USENIX Conference. [S.l.: s.n.] 
Ícone de esboço Este artigo sobre informática é um esboço. Você pode ajudar a Wikipédia expandindo-o.

📚 Artikel Terkait di Wikipedia

Ponto de código

Na terminologia de codificação de caracteres, um ponto de código ou posição de código é qualquer dos valores numéricos que compõem o espaço de código (uma

ASCII

padrão UTF-8 utiliza o bit excedente do primeiro byte para indicar que o Code point tem um valor que excede os valores da tabela ASCII (acima de 127) e necessitará

G

doc numbers for L2/20-266R "Consolidated code chart of proposed phonetic characters" and IPA etc. code point and name changes» (PDF). Arquivado do original

Alá

e do conceito. Há um caractere no Unicode para a palavra Allāh, ﷲ com code point U+FDF2. Diversas fontes em árabe contam com ligaduras especiais próprias

Type of Service

utilizado 6 bits para os serviços diferenciados (Differentiated Services Code Point ou DSCP) e 2 bits para o controle de alertas para congestionamento (Explicit

DiffServ

serviço" (TOS, de Type of Service, posteriormente designado de DiffServ Code Point ou DSCP) no cabeçalho IP consoante a classe dos dados; as melhores classes

Símbolos astronômicos

Quaoar and Orcus have been preliminarily accepted for Unicode 16 at code points U+1F77B to 1F77F (dec 128891 to 128895). L2/21-224: Unicode request for

ChatGPT

ijinfomgt.2023.102642  Tung, Liam (26 de janeiro de 2023). «ChatGPT can write code. Now researchers say it's good at fixing bugs, too». ZDNET. Consultado em