Skip to main content
Posts no X podem conter até 280 caracteres. No entanto, nem todos os caracteres contam da mesma forma — emojis, URLs e certos intervalos Unicode têm regras de contagem especiais.

Pesos dos caracteres

O X usa um sistema ponderado de contagem de caracteres. A maioria dos caracteres conta como 1, mas alguns contam como 2:
Tipo de caracterePesoMáximo de caracteres
Latinos, pontuação, símbolos comuns1280
Emojis2140 emojis
CJK (chinês, japonês, coreano)2140 caracteres
Outros Unicode2 (padrão)Varia
Use a biblioteca de código aberto twitter-text para contar caracteres com precisão no seu app.

Contagem de emojis

Todos os emojis contam como 2 caracteres, independentemente da complexidade:
EmojiExibiçãoContagem de caracteresUnicode
👾Emoji único2U+1F47E
🙋🏽Com tom de pele2🙋 + modificador 🏽
👨‍🎤Combinado com ZWJ2👨 + ZWJ + 🎤
👨‍👩‍👧‍👦Sequência de família24 emojis + 3 ZWJs
Zero-width joiners (ZWJ) combinam emojis visualmente, mas não somam à contagem.

Tratamento de URLs

Todas as URLs são encapsuladas pelo encurtador t.co e contam como 23 caracteres, independentemente do tamanho original:
https://example.com                    → 23 caracteres
https://example.com/very/long/path     → 23 caracteres
Isso se aplica a qualquer URL válida detectada no texto do post.

Casos especiais

ConteúdoRegra de contagem
@menções em respostas@menções preenchidas automaticamente no início das respostas não contam
Novas @menções@menções adicionadas manualmente contam normalmente
MídiaMídia anexada (via clientes oficiais) conta como 0 caracteres
HashtagsContam normalmente (# + texto da tag)

Codificação de texto

A X API requer codificação UTF-8. O comprimento do caractere é calculado usando o Unicode Normalization Form C (NFC). Exemplo com café:
FormaBytesCaracteres
NFC (composto)c a f é4
NFD (decomposto)c a f e ́5
O X normaliza para NFC, então ambos codificam para 4 caracteres.

Implementação

Use a biblioteca oficial twitter-text para contagem precisa de caracteres:
import { parseTweet } from 'twitter-text';

const result = parseTweet('Hello, world! 👋');
console.log(result.weightedLength); // 16
console.log(result.valid);          // true
A biblioteca lida com todos os casos especiais, incluindo sequências de emojis, detecção de URLs e normalização Unicode.

Recursos

Biblioteca twitter-text

Biblioteca oficial de código aberto para análise de texto.

Arquivo de configuração

Definições de pesos de caracteres e intervalos Unicode.