O que esta ferramenta calcula
A calculadora informa uma contagem orientada a caracteres baseada em pontos de código Unicode e uma contagem orientada a armazenamento baseada em bytes UTF-8. Internamente, o auxiliar verificado também distingue unidades de código UTF-16, o que explica por que o comprimento nativo de uma string em JavaScript pode diferir do resultado visível para alguns emojis e caracteres suplementares.
"Caractere" tem vários significados na computação. Uma contagem de pontos de código é mais consciente do Unicode do que contar unidades UTF-16, mas ainda assim não é sempre o número de clusters de grafemas percebidos pelo usuário.
Entradas
Insira ou cole qualquer texto, incluindo espaços, quebras de linha, emojis, marcas combináveis e scripts não latinos. O cálculo ocorre no navegador e não precisa enviar o texto a um serviço de comprimento.
Preserve as quebras de linha exatas quando um limite de bytes importar. Uma quebra de linha CRLF do Windows usa dois pontos de código e dois bytes UTF-8, enquanto uma quebra LF usa um. A normalização Unicode também pode alterar as contagens de pontos de código e bytes sem alterar o texto aparente.
Método e fórmula
A contagem de pontos de código itera a string por pontos de código Unicode, em vez de indexar unidades UTF-16 brutas. A contagem UTF-16 é o comprimento de unidades de código do runtime da linguagem. A contagem de bytes codifica a string como UTF-8 e conta os octetos resultantes.
Caracteres ASCII básicos usam uma unidade UTF-16 e um byte UTF-8. Muitos caracteres acentuados usam um ponto de código, mas dois bytes UTF-8. Emojis suplementares comumente usam um ponto de código, duas unidades de código UTF-16 e quatro bytes UTF-8.
Um grafema, como uma sequência de emojis unida por joiners de largura zero, pode conter vários pontos de código enquanto aparece como um único símbolo. Esta ferramenta não aplica segmentação de grafemas.
Exemplo resolvido
Insira A😀é.
- Pontos de código Unicode:
A,😀eé, totalizando 3. - Unidades de código UTF-16: 1 para A, 2 para 😀 e 1 para é, totalizando 4.
- Bytes UTF-8: 1 para A, 4 para 😀 e 2 para é, totalizando 7.
A calculadora visível informa 3 caracteres e 7 bytes. O valor documentado de UTF-16 de 4 explica por que uma contagem ingênua de .length em JavaScript discordaria.
Como interpretar o resultado
Use pontos de código ao validar um protocolo ou regra de dados explicitamente definida em pontos de código. Use bytes UTF-8 para limites de payload, banco de dados ou API definidos em bytes codificados. Nenhum deles deve ser substituído por um limite definido em clusters de grafemas, largura de exibição, segmentos SMS ou glifos de fonte.
Ao impor um limite de produto, documente a unidade e a forma de normalização. Um usuário não deve perder texto apenas porque a interface diz "caracteres" enquanto o backend rejeita bytes.
Precisão e limitações
A contagem de bytes usa especificamente UTF-8; UTF-16, UTF-32, codificações legadas, compressão, escape, sintaxe JSON e enquadramento de transporte têm tamanhos diferentes. A ferramenta não normaliza texto nem conta clusters de grafemas, palavras, linhas, colunas, glifos ou largura renderizada.
Strings visualmente idênticas podem ter codificações diferentes — por exemplo, uma letra acentuada pré-composta versus uma letra base mais uma marca combinável. Identificadores sensíveis à segurança exigem uma política Unicode documentada além do comprimento.
Fontes
- Unicode Standard, Chapter 2: General Structure distingue pontos de código, formas de codificação e elementos de texto percebidos pelo usuário.
- WHATWG Encoding Standard define o comportamento de codificação UTF-8 usado pelo processamento de texto das plataformas web modernas.
Registro editorial
Autor: SoupCalc Editorial Team
Última revisão: 14 de agosto de 2026
Alcance da revisão: Foram verificados a iteração por pontos de código, o comportamento de surrogates UTF-16, a codificação UTF-8, as limitações de grafemas, as referências de padrões e as contagens de A😀é de 3, 4 e 7.