acento.io
Utilitário de texto

Contador de caracteres

Contagem em tempo real de grafemas, codepoints e bytes UTF-8 — tudo processado localmente, sem enviar nada a servidores.

Por Carlos Suárez , Engenheiro de sistemas
Última atualização:

O que este contador de caracteres faz

Esta versão em português conta caracteres do jeito que humanos percebem — grafemas — e não como a máquina os armazena. O emoji 👨‍👩‍👧, por exemplo, aparece como 1 caractere na tela, mas ocupa 7 codepoints Unicode e até 18 bytes em UTF-8. Essa diferença é invisível na maioria dos editores e causa bugs silenciosos em validações de formulário, limites de banco de dados e contagem de SMS. O Dicionário Houaiss registra cerca de 228.500 entradas do português — toda essa riqueza lexical passa por codificação Unicode, e contar certo faz diferença na prática. A ferramenta exibe grafemas, caracteres sem espaço, codepoints brutos, tamanho em bytes UTF-8 e o caractere mais frequente, tudo em tempo real enquanto você digita. 100% no navegador — seus dados nunca saem do seu computador. Sem uploads, sem rastreamento, sem logs em servidor.

Recursos

  • Contagem de grafemas. Usa segmentação Unicode por clusters de grafemas: emojis compostos, letras com diacríticos e combinações ZWJ são contados como 1 caractere percebido, igual ao que o usuário final vê.
  • Bytes UTF-8 em tempo real. Exibe o peso real do texto em bytes UTF-8 — essencial para validar colunas VARCHAR e TEXT em bancos de dados MySQL, PostgreSQL e SQLite, onde o limite é em bytes, não em caracteres.
  • Codepoints Unicode. Mostra a contagem bruta de codepoints, equivalente ao que [...text].length retorna em JavaScript com spread operator, diferente de str.length que conta unidades UTF-16.
  • Caractere mais frequente. Identifica o grafema com maior ocorrência no texto — útil para análise de densidade de palavras-chave e detecção de caracteres indesejados em dados importados.
  • Contagem sem espaços. Exibe os caracteres excluindo espaços em branco, facilitando comparações de densidade e limites de plataformas que ignoram espaços na contagem.
  • Sem dependência de servidor. Todo o processamento roda no seu navegador via JavaScript. Nenhum caractere do seu texto trafega pela rede — adequado para textos confidenciais, contratos e dados pessoais.

Como usar o contador de caracteres

Cole ou digite qualquer texto na área principal. Os contadores atualizam instantaneamente a cada tecla pressionada, sem necessidade de clicar em nenhum botão.

  1. Cole seu texto. Use Ctrl+V (ou Cmd+V no Mac) para colar o conteúdo diretamente na área de entrada. Funciona com textos ricos, código-fonte, emojis e qualquer script Unicode.
  2. Leia os contadores. Observe os quatro valores: grafemas (percepção humana), sem espaços, codepoints (o que [...text].length retorna em JS) e bytes UTF-8 (o que o banco de dados armazena).
  3. Verifique o limite da plataforma. Para Twitter/X use grafemas (≤280). Para SMS, lembre que um emoji força codificação UCS-2 e reduz o limite de 160 para 70 caracteres por segmento. Para SEO, mantenha meta description em 155–160 grafemas.
  4. Limpe e recomece. Clique em 'Limpar' para zerar a área. Se quiser comparar dois textos, abra uma segunda aba com o mesmo endereço.

Casos de uso comuns

  • Redes sociais e limites de plataforma. Twitter/X limita a 280 grafemas; Bluesky a 300; LinkedIn a 3.000 no corpo do post. Postar de Curitiba ou Salvador não muda o limite, mas emojis regionais compostos podem surpreender se você contar codepoints em vez de grafemas.
  • SEO — title e meta description. O Google trunca títulos em torno de 60 grafemas e meta descriptions em torno de 155–160. Verificar aqui antes de publicar evita cortes indesejados nos resultados de busca. Se você também precisa contar palavras, o [contador de palavras](/pt/word-counter/) complementa essa análise.
  • SMS e custo por segmento. Mensagens GSM-7 cabem 160 caracteres em um único segmento; acima disso viram multi-segmento e o custo dobra ou tripla. Qualquer emoji força UCS-2 e o limite cai para 70 por segmento — esta ferramenta mostra os codepoints que ajudam a estimar isso.
  • Validação de colunas em banco de dados. Uma coluna VARCHAR(255) no MySQL com charset utf8mb4 armazena 255 caracteres, mas cada emoji pode usar 4 bytes — então o limite real em bytes é 1.020. Verificar o tamanho UTF-8 aqui antes da migração evita truncamentos silenciosos.
  • Revisão e edição de textos técnicos. Documentações de API, changelogs e READMEs frequentemente têm limites por linha ou por campo. Conferir grafemas e bytes em tempo real acelera o ciclo de revisão sem precisar de script externo.

Perguntas frequentes

Qual a diferença entre grafema, codepoint e byte?

Grafema é o que você vê: '👨‍👩‍👧' é 1 grafema. Codepoint é a unidade lógica Unicode: esse mesmo emoji tem 7. Byte é o armazenamento físico: em UTF-8, esse emoji ocupa 18 bytes. Bancos de dados e APIs costumam limitar por bytes, redes sociais por grafemas — confundir os três causa bugs difíceis de rastrear.

Por que `str.length` no JavaScript dá um número diferente?

JavaScript armazena strings em UTF-16. str.length conta unidades de 16 bits, não grafemas nem codepoints completos. Emojis fora do BMP (Basic Multilingual Plane) usam dois surrogate pairs e aparecem como comprimento 2. Para contar grafemas, use [...str].length com spread ou a API Intl.Segmenter, que esta ferramenta utiliza internamente.

Meu texto fica salvo em algum servidor?

Não. Todo o processamento acontece no seu navegador, sem nenhuma comunicação com servidor externo. O texto que você cola nunca sai do seu dispositivo — não há uploads, logs ou rastreamento de conteúdo. Pode usar com contratos, senhas ou qualquer dado sensível com segurança.

Como contar caracteres para SMS sem errar o número de segmentos?

Um SMS GSM-7 padrão suporta 160 caracteres por segmento. Se o texto contiver qualquer caractere fora do alfabeto GSM-7 — incluindo emojis, acentos específicos ou caracteres CJK — a codificação muda para UCS-2 e o limite cai para 70 por segmento. Verifique os codepoints aqui e assuma UCS-2 sempre que houver emojis, para não subestimar o custo de envio.

Esta ferramenta funciona com caracteres do português, como ã, ç e ê?

Sim. Todos os caracteres do português brasileiro, incluindo vogais nasais e cedilha, são grafemas simples no Unicode — cada um conta como 1 grafema e 1 codepoint. Em UTF-8, ocupam 2 bytes cada. O contador trata tudo corretamente, sem nenhuma configuração adicional.

Posso usar para verificar o tamanho de meta descriptions e title tags?

Sim, é um dos usos mais práticos. O Google geralmente exibe até ~60 grafemas no title tag e até 155–160 grafemas na meta description antes de truncar com reticências. Cole seu texto aqui, olhe a contagem de grafemas (sem espaços se preferir) e ajuste antes de publicar. Combine com o [contador de palavras](/pt/word-counter/) para otimizar densidade de palavras-chave ao mesmo tempo.