Contador de Caracteres de X (Twitter)

Cuenta un post como la plataforma: enlace vale 23, emoji vale 2, lo demás son caracteres normales. Tweet 280, bio 160 y nombre 50.

El conteo ocurre localmente en tu navegador. No hay botón de envío y tu borrador nunca sale de la página.

0/280
—

280/160/50 son los límites estándar del plan gratuito. Las cuentas premium tienen límites mayores y X ajusta a veces los pesos de los grafemas: para casos límite, verifica en la app oficial.

Cómo funciona

El contador reproduce la ponderación de la plataforma en lugar del conteo ingenuo de la cadena. Primero busca cada token http:// o https:// y cobra 23 fijos por cada uno — el acortador t.co hace irrelevante la longitud del enlace. El texto restante se recorre como conglomerados de grafemas, y cualquier grupo que empiece con un punto de código por encima de U+FFFF cuesta 2 mientras todo lo demás cuesta 1.

La trampa de UTF-16
El .length de JavaScript cuenta unidades de código de 16 bits, así que un emoji como una cara sonriente reporta longitud 2 y un emoji familiar de cinco puntos de código reporta mucho más. El conteo ingenuo parte además los pares sustitutos por la mitad; esta herramienta recorre grupos completos para que recortar nunca corrompa un carácter.
La regla de los 23 de t.co
Al publicar, cada enlace se reescribe mediante el acortador del servicio, así que una URL de 5 caracteres y un monolito de rastreo de 300 cuestan exactamente 23. El contador elimina los tokens URL antes de ponderar el texto e informa aparte cuántos enlaces detectó.
Conteo de grafemas con Intl.Segmenter
Donde el navegador admite Intl.Segmenter, banderas, modificadores de tono de piel y familias ZWJ se tratan como un carácter visible, igual que lo ves. Los motores antiguos recurren a la iteración por punto de código con Array.from, que sigue siendo segura con los sustitutos y solo es algo más estricta con emojis compuestos.

Preguntas frecuentes

¿Cambian el conteo el markdown o el formato oculto?

No. X guarda los posts como texto plano, así que marcadores de markdown o estilos invisibles cuentan como los caracteres literales que escribiste. Lo único que se cuenta distinto de la longitud cruda son los enlaces —normalizados a 23— y los caracteres fuera del Plano Multilingüe Básico, que valen 2.

¿Por qué los emojis cuentan como dos caracteres?

Las cadenas de JavaScript son UTF-16 y la mayoría de emojis viven por encima del Plano Multilingüe Básico, donde un carácter visible ocupa dos unidades de código de 16 bits —un par sustituto—. X pondera esos puntos de código como 2, y esta página lo imita recorriendo conglomerados de grafemas con Intl.Segmenter (con respaldo por punto de código donde falta).

¿Funciona con hilos o posts largos?

Cuenta un bloque de texto contra un límite — así funcionan exactamente los hilos: cada publicación tiene su propio presupuesto, así que revísalas de una en una. Los posts largos son una función premium aparte con un límite mucho mayor; este contador no los modela.

¿280 es el límite correcto para mi cuenta?

280 es el límite estándar del plan gratuito para tweets, 160 para la bio y 50 para el nombre visible — los tres están en el selector. Las cuentas Premium tienen límites mayores y X prueba a veces más caracteres por grafema. En casos límite, verifica en la app oficial antes de publicar.

¿Se sube algo a un servidor?

No. Contar son unas pocas líneas de JavaScript puro en tu navegador: no hay botón de envío, ni almacenamiento, ni petición de red asociada a tu texto. Los borradores se quedan en tu dispositivo.