O que é UTF-8? Por que emojis e acentos ocupam espaço extra

26 de junho de 2026 · 5 min de leitura
Experimentar a ferramentaCalculadora de tamanho de texto →

UTF-8 é a codificação que executa a web moderna, quase todas as páginas da web, bancos de dados e APIs a utilizam. Na maioria das vezes funciona de forma invisível, mas explica um quebra-cabeça que surpreende as pessoas: por que uma mensagem curta cheia de emoji pode ser “grande demais” para um campo que cabe em uma mensagem mais longa de texto simples. Aqui está o UTF-8 explicado de forma simples e por que isso é importante.

O que é UTF-8

UTF-8 é uma forma de representar caracteres de texto como bytes, as unidades que os computadores realmente armazenam e transmitem. Cada caractere digitado deve se tornar uma sequência de bytes, e UTF-8 é o sistema padrão para fazer isso. Seu design inteligente é que tem largura variável: caracteres diferentes ocupam diferentes números de bytes. Isso permite representar todos os caracteres em todos os idiomas e todos os emojis, ao mesmo tempo que mantém o texto simples em inglês compacto. Tornou-se a codificação dominante precisamente porque é universal e eficiente para texto comum.

Por que alguns caracteres ocupam mais bytes

Aqui está a ideia principal. UTF-8 usa um byte para os caracteres básicos, letras inglesas, dígitos e pontuação comum. Mas os caracteres fora desse conjunto básico ocupam mais: a maioria das letras latinas acentuadas e muitos símbolos ocupam dois bytes, uma grande variedade, incluindo caracteres chineses, japoneses e coreanos, ocupa três bytes, e o restante, incluindo a maioria dos emojis, ocupa quatro bytes. Portanto, o tamanho em bytes do seu texto depende inteiramente dos caracteres que ele contém. O inglês simples é um byte por caractere; emoji são quatro.

Por que isso é importante para os limites

A largura variável é o motivo pelo qual a contagem de caracteres e a contagem de bytes podem ser diferentes e por que isso é importante. Muitos limites, campos de banco de dados, cargas de rede e alguns tamanhos de solicitações de API são medidos em bytes, não em caracteres. Um campo que contém 100 bytes acomoda 100 caracteres simples do inglês, mas apenas 50 caracteres se forem letras acentuadas de dois bytes ou 25 se forem emoji de quatro bytes. É exatamente por isso que uma mensagem visualmente curta e com muitos emojis pode ser rejeitada por ser muito longa, enquanto uma mensagem de texto simples mais longa cabe. Os bytes, não os caracteres, atingiram o limite.

A calculadora de tamanho de texto TextCaret mostra o tamanho exato de bytes do seu texto em UTF-8 próximo à contagem de caracteres, para que você possa ver como emoji e acentos aumentam a contagem de bytes em relação a um limite baseado em bytes.

A surpresa dos emojis

Os emojis merecem atenção especial porque são os que causam mais confusão. A maioria dos emojis tem quatro bytes em UTF-8, tanto espaço quanto quatro letras simples. E alguns emojis são construídos combinando vários pontos de código: uma bandeira, uma variante de tom de pele ou um emoji de família pode ter muitos bytes, às vezes mais de uma dúzia. Portanto, um único emoji visível pode ocupar muito mais espaço do que parece. Se uma mensagem curta e cheia de emojis foi rejeitada por ser muito longa, essa realidade de largura variável e vários bytes é o motivo.

A lição prática

Você raramente precisa pensar diretamente no UTF-8, mas saber disso explica o comportamento real. Quando o limite estiver em caracteres, conte os caracteres. Quando estiver em bytes, em muitos contextos técnicos, lembre-se que os acentos dobram e os emoji quadruplicam o custo do byte, portanto verifique o tamanho real do byte se o seu texto não estiver em inglês simples. Ver a contagem de caracteres e o tamanho de bytes de uma só vez elimina as suposições e evita a confusa rejeição "mas parecia curto o suficiente".

Experimentar a ferramentaCalculadora de tamanho de texto →