UTF-8 (8-
bit Unicode Transformation Format) é um tipo de codificação Unicode de comprimento variável criado por
Ken Thompson e
Rob Pike. Pode representar qualquer carácter 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 email, páginas web, e outros locais onde os caracteres são armazenados.
UTF-8 usa de um a quatro
bytes (estritamente, octetos) por carácter, 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 carácter ("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).