Contador de Caracteres
Contar caracteres mede o texto do jeito que cada destino vai medir: agrupamentos de grafemas para a maioria das plataformas, o comprimento ponderado do X — em que um ideograma CJK custa dois e toda URL conta como 23 — para o X, e a aritmética de segmentos GSM-7 versus UCS-2 para SMS. Contar text.length superestima cada emoji.
- Caracteres
- 156
- Pontos de código
- 156
- Unidades UTF-16
- 157
- Palavras
- 26
- Frases
- 4
- Linhas
- 5
- Bytes
- 161
Limites por plataforma
X (Twitter)
- Publicação146 / 280caracteres ponderados
- Publicação (Premium)146 / 25000caracteres ponderados
- Biografia156 / 160caracteres
- Nome de exibição156 / 50caracteres106 acima
Bluesky
- Publicação156 / 300caracteres
- Biografia156 / 256caracteres
Threads
- Publicação156 / 500caracteres
- Legenda156 / 2200caracteres
- Biografia156 / 150caracteres6 acima
- Publicação156 / 3000caracteres
- Título156 / 220caracteres
- Publicação156 / 63206caracteres
TikTok
- Legenda156 / 2200caracteres
YouTube
- Título156 / 100caracteres56 acima
- Descrição156 / 5000caracteres
- Tags156 / 500caracteres
Busca & SEO
- Meta título156 / 60caracteres96 acima
- Metadescrição156 / 155caracteres1 acima
Google Ads
- Título156 / 30caracteres126 acima
- Descrição156 / 90caracteres66 acima
Discord
- Mensagem156 / 2000caracteres
- Texto de status156 / 700caracteres
SMS
- Uma mensagem156 / 160pontos de código
Comprimento ponderado X
146 / 280 · 1 link(s) contados como 23
Caracteres CJK e emojis contam dois; latinos contam um. É a aritmética do X, não uma contagem de caracteres.
SMS
3 mensagens · UCS-2 · 157/70
Um ou mais caracteres forçaram UCS-2, o que reduz pela metade a capacidade para 70.
Como funciona o Contador de Caracteres?
Todo contador de caracteres responde a uma pergunta que ninguém lhe fez com precisão, e a resposta muda conforme quem pergunta. Este se recusa a dar um único número, porque ele não existe.
Três formas de contar o mesmo texto
"😀".length é 2. O JavaScript conta unidades de código UTF-16, o que é um fato sobre a codificação e não sobre o texto: um emoji precisa de duas. [..."😀"].length é 1, porque um ponto de código está mais perto do que uma pessoa entende por caractere. E a contagem de grafemas também é 1, o número que todo limite de plataforma realmente usa.
Os três se afastam mais do que um único emoji sugere. Um emoji de família formado por quatro pessoas unidas por joiners de largura zero são 11 unidades de código e um grafema. Uma bandeira são dois pontos de código e um grafema. Uma letra com acento combinante é um ou dois pontos de código, dependendo de como foi digitada: o mesmo texto visível, duas contagens diferentes. Os três números aparecem, porque o maxlength de um campo de formulário usa o primeiro, o comprimento de uma coluna de banco de dados costuma usar o segundo e o limite de uma plataforma usa o terceiro.
O X não conta caracteres de forma alguma
O X conta peso. Um ideograma CJK custa dois, uma letra latina custa um e um emoji custa dois, então 140 caracteres japoneses e 280 latinos ocupam o mesmo espaço. Ele também reescreve toda URL pelo t.co e a conta como 23 caracteres fixos, não importando o comprimento real. Uma publicação com um link de 200 caracteres fica 23 caracteres mais curta do que parece, e uma publicação japonesa que se lê como 200 caracteres vale 400 pela aritmética do X: bem acima do limite. As faixas e a regra dos 23 caracteres usadas aqui são a configuração publicada pelo próprio X, não uma estimativa.
O SMS tem dois alfabetos e duas aritméticas
Uma mensagem de texto comporta 160 caracteres se todos estiverem no alfabeto GSM de 7 bits, e 70 se algum não estiver: um apóstrofo curvo, uma maiúscula acentuada, um emoji. Um único caractere pode transformar uma mensagem em três. A concatenação muda os números de novo: 153 e 67, porque cada segmento carrega um cabeçalho. E oito caracteres do alfabeto — {}[]|^~\ e o símbolo do euro — são transmitidos como dois, então uma mensagem que informa 160 de 160 ainda pode ser cobrada como duas.
Texto
Ship faster without shipping secrets. 🚀
Contagens
characters (graphemes) 39 code points 39 UTF-16 code units 40 words 5 X weighted 40 / 280 SMS 1 message (UCS-2)
Texto → Contagens
Texto
Ship faster without shipping secrets. 🚀 https://example.com/releases/v9-32
Contagens
characters (graphemes) 75 code points 75 UTF-16 code units 76 words 10 X weighted 65 / 280 SMS 2 messages (UCS-2)
Quais opções e casos-limite o Contador de Caracteres suporta?
| Parâmetro | Tipo | Padrão | Comportamento e casos-limite |
|---|---|---|---|
| Grafemas | contagem | limites das plataformas | Os caracteres como uma pessoa os percebe, a unidade em que todo limite de plataforma é escrito. Um emoji, uma bandeira e uma família de quatro valem um cada. Calculado com Intl.Segmenter, com fallback para pontos de código em navegadores sem ele. |
| Ponderação do X | contagem | 280 | A aritmética do próprio X: CJK e a maioria dos emoji custam 2, o latino custa 1, e toda URL é reescrita para 23 caracteres fixos porque passa pelo t.co. As faixas usadas aqui vêm da configuração twitter-text publicada pelo próprio X. |
| Pontos de código | contagem | — | O que a maioria dos outros contadores chama de “caracteres” e o que guarda uma coluna de banco de dados medida em caracteres. Difere da contagem de grafemas sempre que há marcas combinantes ou joiners de largura zero. |
| Unidades de código UTF-16 | contagem | String.length | O que o .length do JavaScript e um atributo maxlength de HTML contam. Um emoji vale 2. Vale saber, porque um formulário que valida com .length e uma plataforma que conta grafemas nunca vão concordar. |
| Palavras | contagem | — | Sequências de letras, dígitos e apóstrofos: don't é uma palavra e well-known é uma palavra. Contar separando por espaços dá duas quando há um espaço duplo. |
| Codificação SMS | derivado | GSM-7 ou UCS-2 | 160 caracteres em GSM-7 e 70 em UCS-2 — e um único caractere fora do alfabeto GSM muda a mensagem inteira. Segmentos concatenados comportam 153 e 67 porque cada um carrega um cabeçalho. |
| Bytes | contagem | UTF-8 | O que o texto custa na rede e em um banco de dados. Um emoji são 4 bytes, um ideograma CJK são 3, uma letra ASCII é 1 — então uma publicação japonesa de 280 caracteres passa de 800 bytes. |
| Verificado | data | 2026-10-03 | Os limites das plataformas mudam sem aviso. Estes foram conferidos na data indicada; a nota ao lado de cada um diz se exceder o limite trunca o texto ou o recusa de vez — que é a parte que realmente importa. |
Perguntas frequentes
Por que meu emoji conta como dois caracteres?
Porque algo está contando unidades de código UTF-16, que é o que o String.length do JavaScript e um atributo maxlength de HTML fazem. Um emoji fora do Plano Multilíngue Básico precisa de duas unidades para ser codificado. A contagem de grafemas — o número que um leitor e todo limite de plataforma usam — é um. Os dois aparecem aqui, então você sabe de qual um formulário está reclamando.
Por que minha publicação no X passa do limite parecendo curta?
O X conta peso, não caracteres. Um ideograma CJK custa dois, então uma publicação japonesa de 200 caracteres vale 400 pela aritmética do X, bem acima de 280. Emoji também custam dois. Texto latino vale um por um, e é por isso que o problema é invisível para quem testa em inglês — a contagem ponderada aparece separada exatamente por essa razão.
Um link conta mesmo como 23 caracteres?
No X, sim. Toda URL é reescrita pelo t.co e contada como 23 caracteres fixos, não importando o comprimento real, então uma URL de rastreamento de 200 caracteres custa o mesmo que uma curta. É também por isso que a contagem aqui não mede simplesmente a string: uma publicação de 300 caracteres com um link longo pode ser publicada tranquilamente.
Por que minha contagem de SMS muda quando adiciono um caractere?
Porque um único caractere fora do alfabeto GSM de 7 bits recodifica a mensagem inteira como UCS-2, o que corta a capacidade de 160 para 70. Um apóstrofo curvo, uma maiúscula acentuada ou um emoji bastam. A ferramenta nomeia os caracteres exatos que causaram a troca, porque substituir um deles costuma ser mais fácil do que dividir a mensagem.
O que é um grafema, em termos simples?
Aquilo que uma pessoa apontaria e chamaria de um caractere. Uma bandeira, um emoji com modificador de tom de pele e uma letra com acento digitada como dois pontos de código são um único grafema cada. O Intl.Segmenter calcula isso corretamente; onde o navegador não o tem, a contagem cai para pontos de código, o que chega perto, mas trata um acento combinante como caractere separado.
Meu texto é enviado para algum lugar?
Não. Contar é aritmética sobre uma string nesta aba, e o painel de Rede não mostra requisição nenhuma enquanto você digita. Isso importa aqui porque o texto que as pessoas medem antes de publicar costuma ser um anúncio ainda não divulgado ou uma mensagem privada.