Contador de caracteres de X (Twitter)
Introducción
X cuenta las publicaciones con un sistema que casi nadie conoce: caracteres ponderados. Los enlaces se colapsan a exactamente 23 caracteres sin importar su longitud, los glifos chinos/japoneses/coreanos y los emoji pesan el doble que las letras inglesas, y un puñado de rangos Unicode recibe tratamiento especial. El resultado es un límite que sorprende regularmente – un borrador que parece seguro por debajo de 280 es rechazado, y nadie puede ver por qué.
El Contador de caracteres de X (Twitter) de Toollect aplica las reglas reales, no una longitud de cadena ingenua. Pega un borrador y seis contadores se actualizan con cada pulsación – total ponderado, conteo de hashtags, menciones, URLs, saltos de línea y párrafos – junto a listas de cada hashtag, mención y enlace que detecta el parser estilo plataforma. Los límites de detección se verificaron caso por caso contra el comportamiento de x.com en vivo, incluidas las esquinas raras – desde hashes dobles hasta fragmentos pegados a palabras que se vuelven inválidos.
Todo funciona localmente en tu navegador. No hay clave API, ni registro, ni petición alguna – tu borrador nunca sale de tu dispositivo, y los números son instantáneos porque nada espera a la red.
Casos de uso
Gestores de redes sociales comprobando publicaciones programadas
Las herramientas de programación suelen contar mal los borradores de X porque usan longitud simple. Pasa el texto por este contador antes de encolarlo – el total ponderado y la lista de URLs te dicen exactamente qué aceptará X, y el aviso de exceso aparece en cuanto el borrador cruza la línea.
Escritores CJK luchando contra el truncamiento silencioso
Las publicaciones japonesas, chinas y coreanas caben roughly 140 glifos en el mismo presupuesto que una inglesa usa para 280. Ver el número ponderado junto a tu borrador convierte la duplicación invisible en algo planificable en lugar de descubrirla después de publicar.
Desarrolladores de bots y automatización
Si tu bot compone tuits programáticamente, este contador sirve como referencia de especificación – las tablas de rangos de peso, el coste fijo de URL y las reglas de límites de hashtag/mención documentan caso por caso qué implementa el parser.
Redactores multiplataforma
Adaptar un mensaje entre plataformas significa respetar límites y matemáticas distintas. Empareja esta herramienta con su hermana, el Analizador de Caption de Instagram, y comprueba ambos destinos sin adivinar qué plataforma pondera qué.
Cómo funciona
El contador ejecuta cuatro pasos completamente en tu navegador, actualizándose en vivo con cada pulsación:
- Normalizar el texto. La entrada se convierte primero a forma Unicode NFC, para que una é descompuesta (letra más acento combinante) cuente una vez en lugar de dos – igual que X normaliza antes de contar.
- Extraer y aplanar URLs. Cada enlace que X reconoce se extrae y se sustituye por un coste plano de 23 caracteres – tanto direcciones https:// y http:// como dominios sin protocolo como twitch.tv, cuyo final figura en las listas oficiales de dominios de nivel superior. La puntuación final como el punto de la frase se queda con el texto circundante, no con el enlace.
- Segmentar en clústeres de grafemas. El texto restante se divide con Intl.Segmenter en caracteres percibidos por el usuario – una familia de emoji construida con siete puntos de código, una bandera de dos y un pulgar con tono de piel forman exactamente una unidad cada uno.
- Ponderar cada clúster. Los clústeres con emoji pesan 2. Todo lo demás suma sus puntos de código contra los rangos claros oficiales – 1 si está dentro, 2 si está fuera. Hashtags y menciones se extraen por separado del texto sin enlaces usando las reglas de límite de x.com documentadas abajo.
Cualquier cambio vuelve a ejecutar toda la cadena al instante. No hay opciones que configurar ni modos que elegir – la herramienta aplica siempre las mismas reglas de x.com en vivo.
Las reglas de conteo ponderado
Esta es la tabla completa de pesos que aplica el contador, coincidente con la configuración pública de twitter-text sobre la que X se construye.
| Caracteres | Ejemplos | Peso |
|---|---|---|
| U+0000 – U+10FF | Latín, griego, cirílico, hebreo, árabe, hindi, tailandés, puntuación, dígitos | 1 |
| U+2000 – U+200D | Puntuación general y el joiner de ancho cero | 1 |
| U+2010 – U+201F | Rayas y comillas tipográficas | 1 |
| U+2032 – U+2037 | Marcas de prima | 1 |
| Todo lo demás | Chino/japonés/coreano, hangul, emoji, la mayoría de otros alfabetos | 2 |
Tres reglas especiales se sitúan sobre la tabla:
- Cada enlace cuesta 23. Cualquier dirección que el parser reconozca se aplana a exactamente 23 caracteres sea cual sea su longitud real – URLs https:// y http:// más dominios sin protocolo como twitch.tv. Un imitador cuyo final no es un dominio de nivel superior real (foo.zzz) sigue siendo texto ordinario.
- Los clústeres de emoji son atómicos. La detección funciona con clústeres de grafemas, así que 👨👩👧👦 cuenta como un clúster (peso 2), las banderas cuentan como una, y los modificadores de tono de piel se fusionan con su emoji base. Sin agrupación, esa familia sumaría incorrectamente once puntos de código.
- Los acentos colapsan antes de contar. El texto se normaliza a NFC, así que café tecleado con acento descompuesto cuenta 4 caracteres, no 5.
Un ejemplo trabajado – el borrador Más sobre la misión 🚀 https://x.com/a/long/path:
| Parte | Cálculo | Coste |
|---|---|---|
Más sobre la misión |
20 caracteres ligeros | 20 |
| 🚀 | un clúster de emoji | 2 |
| espacio | 1 | 1 |
https://x.com/a/long/path |
enlace aplanado | 23 |
| Total | 46 |
Límites de hashtags y menciones
La detección sigue los límites observados en x.com en vivo a través de 36 casos de prueba verificados – incluyendo varios que contradicen supuestos comunes. Las tablas listan los decisivos.
Hashtags
| Entrada | Resultado | Regla |
|---|---|---|
#Japan al inicio o tras espacio |
✓ | Caso estándar |
🇯🇵#Japan, !#Japan, .#Japan, ,#Japan, -#Japan |
✓ | Emoji y estos signos no bloquean el hash |
abc#Japan, 123#Japan |
✗ | Una letra o dígito pegada delante lo cancela |
_#Japan |
✗ | El guion bajo también bloquea |
&@mention, &#Japan |
✗ | El ampersand bloquea (seguridad de entidades HTML) |
@#Japan |
✓ | Una arroba justo antes del hash no bloquea |
##Japan, ##Japan, #Japan |
✓ | Hashes extra – medios o anchos – no bloquean |
#Japan#, #Japan#Japan, #Ja#pan |
✗ | Un hash pegado al final de la etiqueta la mata, sin reintento parcial |
#123, #123, #🇯🇵 |
✗ | Las etiquetas necesitan al menos una letra o la secuencia nunca se forma |
#1Direction, #日本語, #foo_bar |
✓ | Dígitos mezclados con letras, etiquetas Unicode y guiones bajos funcionan |
La familia #Japan# sorprende a casi todos: el texto de la etiqueta está bien, pero X descarta el candidato entero cuando otro hash queda pegado directamente a su final, y el parser nunca reintenta una versión más corta.
Menciones
| Entrada | Resultado | Regla |
|---|---|---|
.@alice, ,@alice, ?@alice, :@alice, (@alice, /@alice, -@alice |
✓ | Estos signos permiten la mención |
🇯🇵@alice |
✓ | El emoji también la permite |
!@alice |
✗ | Un signo de exclamación bloquea las menciones – más estricto que en hashtags |
@@alice, #@alice, &@alice, abc@alice, 123@alice |
✗ | Arroba/hash/ampersand/caracteres de palabra bloquean todos |
@alice@bob |
✗ ambos | Los handles seguidos directamente de otra arroba se descartan |
@alice's post |
✓ alice | El posesivo queda fuera del handle |
@15chars_max_0000 (16 caracteres) |
✓ handle completo | El parser coincide hasta 20 caracteres – la creación de cuentas para en 15, la detección no |
@12345678901234567890123 (23 dígitos) |
✓ primeros 20 | Más allá del tope el resto se convierte en texto plano |
Las menciones son deliberadamente más estrictas que los hashtags por la izquierda (! bloquea aquí pero allí no) y más laxas por la derecha (@alice# mantiene su mención donde #Japan# pierde su etiqueta). Ambos comportamientos se confirmaron en x.com en vivo antes de codificarlos.
Mitos sobre el límite de caracteres
Cuatro creencias sobreviven desde documentaciones antiguas o pura suposición. Cada una falla contra el x.com actual.
«Las respuestas no cuentan las menciones iniciales.» Cierto en 2017, falso hoy. Teclear o pegar handles al inicio de una respuesta reduce tus caracteres disponibles exactamente como el cuerpo del texto – verificado en x.com en vivo durante la construcción de esta herramienta. Las guías que repiten la exención describen una regla retirada.
«Todo texto no inglés pesa doble.» La duplicación empieza por encima de un punto Unicode concreto. Árabe, hebreo, hindi y tailandés están todos dentro de la zona de peso uno – una publicación árabe lleva casi tanto texto como una inglesa. El peso doble pertenece a CJK, hangul, emoji y alfabetos más allá de esa frontera.
«Acorta tus enlaces antes de publicar.» Inútil desde 2010. X reemplaza cada enlace con su propio acortador y cobra un precio fijo de 23 – le des 13 o 300 caracteres. Acortar antes no cambia nada.
«Las imágenes y citas se comen caracteres.» Los adjuntos no cuestan nada – hasta cuatro fotos viajan gratis – y el texto de la publicación citada no se suma al tuyo. Solo cuenta lo que realmente escribes.
Premium y publicaciones largas
Una suscripción a X Premium eleva el techo de 280 a 25.000 caracteres en todos los niveles de pago, convirtiendo una publicación en algo cercano a un artículo. Dos advertencias importan más que la cifra titular.
Primera, X documenta las reglas ponderadas para el límite de 280 pero nunca ha publicado cómo trata ese tope de 25.000 los enlaces, los emoji o el texto CJK. Cualquier contador de terceros que afirme paridad exacta con el límite largo está adivinando. Esta herramienta deliberadamente modela solo las reglas de 280 bien documentadas en lugar de inventar otras no verificables.
Segunda, las cronologías pliegan las publicaciones largas tras unos 280 caracteres detrás de un enlace Mostrar más. Lo que escribas más allá compite por atención bajo las mismas reglas ponderadas que la publicación de cualquier otro. Para todo lo que deba leerse sin un clic extra, 280 sigue siendo el número que importa – por eso este contador sigue siendo útil incluso para cuentas Premium.
Uso
- Teclea o pega tu borrador en el área de texto. Los seis contadores se actualizan con cada pulsación.
- Vigila la tarjeta de Caracteres – se pone roja en cuanto el total ponderado pasa de 280, y el mensaje de arriba explica el exceso.
- Lee las listas de desglose – cada hashtag, mención y enlace detectado aparece abajo, con duplicados colapsados en un chip marcado ×N.
- Copia el borrador cuando encaje – el botón selecciona el texto y lo pone en tu portapapeles, listo para x.com o tu herramienta de programación.
- Borrar reinicia el texto y todos los contadores en un paso.
No hay opciones que configurar ni modos que elegir – la herramienta aplica siempre las mismas reglas de x.com en vivo.
Tutorial
Sigue un borrador realista a través de toda la canalización.
Paso 1 – Pega un borrador mixto.
Entrenamiento completado ✅ Informe completo https://x.com Más detalles pronto
Un contador genérico informa 77. La tarjeta de Caracteres muestra 88. La diferencia es la aritmética invisible: el emoji de check pesa 2 como clúster propio (+1 sobre un conteo simple), y el enlace se aplana de 13 a 23 caracteres (+10).
Paso 2 – Mira cómo se aplana la URL. Sustituye la dirección corta por otra mucho más larga:
Entrenamiento completado ✅ Informe completo https://defense.example.gov/news/2026/exercise-report Más detalles pronto
El enlace creció 40 caracteres, pero la tarjeta de Caracteres no se mueve de 88 – la lista de URLs detectadas confirma que la nueva dirección cuesta los mismos 23 planos. Un contador simple saltaría a 117; por eso acortar enlaces de antemano no ahorra nada en X.
Paso 3 – Añade hashtags como los parsea x.com. Añade #Japón #Entrenamiento. Ambos se extraen limpiamente y suman 6 y 14 caracteres ponderados respectivamente, más los dos espacios separadores – la tarjeta marca 110.
Paso 4 – Rompe un hashtag a propósito. Teclea #Ja#pan. Ningún fragmento aparece en la lista – un hash pegado al final de la etiqueta invalida todo el candidato. Vuelve a la versión funcional.
Paso 5 – Cruza la línea. Duplica la apertura CJK hasta que la tarjeta se ponga roja y aparezca el aviso de exceso. Recorta hasta que vuelva a verde – ver caer el número hace instintiva la aritmética de 2 por glifo.
Paso 6 – Copia y envía. Pulsa Copiar, pega en x.com, y el compositor acepta el borrador al primer intento – mismas reglas, mismo número.
Consejos profesionales
- Presupuesta los enlaces a 23 cada uno antes de escribir. Un enlace deja 257 caracteres; tres dejan 211. Reserva el presupuesto primero y el borrador no necesitará cirugía después.
- Trata los emoji complejos como gasto de lujo. Cada clúster cuesta 2, y las cadenas de reacción suman rápido – tres confetis pesan más que la palabra wow.
- Carga el gancho al principio. Las cronologías truncan alrededor del pliegue; lo que queda pasado el punto medio ponderado rara vez gana clics. Pon la conclusión pronto.
- Mantén los hashtags en un puñado limpio. X no impone penalización dura de hashtags, pero las etiquetas a mitad de palabra nunca parsean – deja un espacio o inicio de línea antes de cada hash.
- Pega desde Word sin miedo. Las comillas y rayas tipográficas están en los rangos de puntuación de peso uno, y la normalización NFC pliega los acentos descompuestos a uno.
- Emparéjalo con el Analizador de Caption para cross-posting. Mismo borrador, matemática de plataforma distinta – X pondera y aplana enlaces, IG rastrea totales contra unos flexibles 2200 con una guía de cinco hashtags.
- Confía en la tarjeta roja más que en tus ojos. Si Caracteres dice exceso, la publicación excede – la aritmética ponderada ve costes que los contadores simples no pueden.
Alternativas
| Opción | Reglas ponderadas | Detección exacta de límites | Desglose en vivo | Privado/sin conexión |
|---|---|---|---|---|
| Este contador | Sí – verificado en x.com en vivo | Sí – 36 casos probados | Seis contadores + listas | Sí |
| Contador del compositor de x.com | Sí | Sí | Solo total, sin desglose | N/A (en plataforma) |
| Contadores genéricos de caracteres | No – longitud simple | No | Parcial | Normalmente |
| Comprobaciones integradas en schedulers | Rara vez – longitud simple | No | Varía | No |
| Biblioteca twitter-text | Sí – implementación de referencia | Sí | Constrúyelo tú | Depende del host |
El compositor dentro de x.com es autoritativo pero ofrece un solo número sin diagnóstico. Los contadores genéricos son la razón por la que los borradores se rechazan – ignoran la ponderación por completo. Los schedulers heredan el mismo fallo. La biblioteca twitter-text es la fuente de verdad si quieres incrustar el motor completo, al costo de una dependencia. Este contador ocupa el medio práctico – reglas de grado referencia con cero configuración.
Frente a la biblioteca twitter-text
X publica una biblioteca de código abierto, twitter-text, que define las reglas canónicas de conteo y extracción – este contador implementa esa misma especificación pública en lugar de llamar a ninguna API.
| Capacidad | Biblioteca twitter-text | Este contador |
|---|---|---|
| Longitud ponderada | Exacta – implementación de referencia | Mismos pesos y rangos |
| Detección de enlaces | Gramática exhaustiva con cientos de dominios de nivel superior válidos | Dominios sin protocolo comprobados contra las mismas listas oficiales de sufijos – los enlaces https omiten esa comprobación |
| Agrupación de emoji | Parsing configurable | Segmentación por grafemas con la heurística estándar de bloques emoji |
| Límites de hashtag/mención | Regex de referencia | Límites transcritos de pruebas en x.com en vivo (36 casos) |
| Integración | Una dependencia empaquetada para tu build | Ninguna – abre la página y teclea |
La detección de dominios sin protocolo comparte ahora la base de la biblioteca – este contador incrusta las mismas listas oficiales de sufijos gTLD/ccTLD, así que twitch.tv cuenta como enlace mientras foo.zzz sigue siendo texto, exactamente como decide la biblioteca. Quedan dos brechas honestas – los enlaces https:// se aceptan en cualquier forma plausible sin la comprobación de sufijos, y las listas incrustadas se congelan en la versión de código abierto, por lo que un dominio de nivel superior introducido después podría faltar. En publicaciones ordinarias los números coinciden; todo lo demás – pesos, agrupación, límites – sigue la misma especificación, y las tablas de límites provienen de pruebas en la plataforma viva en lugar de transcripción de la biblioteca.
Contador frente al analizador de captions
Toollect ofrece analizadores hermanos para las dos plataformas sociales grandes, y sus diferencias ilustran por qué un contador nunca sirve para todo:
| Pregunta | Analizador de Caption (Instagram) | Este contador (X) |
|---|---|---|
| Límite | 2.200 caracteres | 280 caracteres ponderados |
| Base de conteo | Longitud UTF-16 | Clústeres de grafemas ponderados |
| Emoji simple | 2 (unidades astrales) | 2 (regla de clúster) |
| Familias de emoji complejas | Pesa cada unidad de código – una familia cuesta más de 2 | Siempre exactamente 2 por clúster |
| Enlaces | Texto ordinario – sin aplanamiento | 23 planos cada uno |
| Límites específicos de plataforma | Guía de cinco hashtags | Las menciones de respuesta cuentan; reglas de límite según las tablas anteriores |
Ningún enfoque es incorrecto – cada uno refleja su plataforma. El límite más generoso de Instagram tolera un conteo más simple, mientras que el presupuesto ajustado de X exige la precisión ponderada. Una nota honesta sobre el hermano: una familia de emoji ZWJ pegada en el analizador de captions cuenta sus unidades de código crudas (una familia cuesta más de 2), porque Instagram nunca ha documentado su método exacto y UTF-16 fue la elección pragmática. Si publicas la misma familia en ambas plataformas, espera que X la cobre 2 y el analizador reporte más.
Lo que no hace
- No modela posts largos de Premium. El nivel de 25.000 caracteres existe, pero X nunca ha documentado cómo cuenta – inventar reglas rompería la garantía de precisión. Ver Premium y publicaciones largas arriba.
- No divide hilos. Pasarse del límite significa recortar o hacer hilo manualmente; la herramienta reporta, no reescribe.
- No garantiza paridad bit a bit con los servidores de X. Los dominios sin protocolo se comprueban contra las listas oficiales de sufijos, los enlaces https omiten esa comprobación y las listas incrustadas se congelan en la versión de código abierto – direcciones patológicas podrían teóricamente clasificarse diferente. Las publicaciones ordinarias coinciden.
- No verifica que los handles existan. @nonexistent_account_12345 sigue parseando como mención – la validez es una consulta de plataforma, no una cuestión de gramática.
- No comprueba límites de bio, DM ni nombre. Esos campos usan topes distintos (160, 10.000 y 50) fuera del alcance de propósito único de este contador.
- No publica, programa ni almacena nada. La salida es conocimiento, no acciones.
- No está afiliado a X. Las reglas se transcribieron de documentación pública y observación en vivo, sin implicación de respaldo.
Solución de problemas
| Problema | Causa | Solución |
|---|---|---|
| Mi borrador parece menor de 280 pero la tarjeta está roja | Costes ponderados – enlaces a 23, CJK/emoji a 2 | Revisa las listas de desglose; sustituye el enlace o recorta texto de doble peso hasta que pase |
| La lista de URLs muestra un enlace que no quería publicar | Los enlaces reconocidos cuentan – incluidos dominios sin protocolo como twitch.tv | Reformula para que la dirección no esté en el borrador, o acepta su costo de 23 |
| #123 no aparece bajo Hashtags | Las etiquetas puramente numéricas no son hashtags en X | Añade una letra a la etiqueta, o descártala |
| Falta un hashtag tras un emoji | No debería pasar – los prefijos emoji son válidos | Confirma que ninguna letra/dígito/guion bajo esté justo antes del hash; reporta la entrada exacta si aún falla |
| El conteo difiere ligeramente del de otro sitio web | La mayoría de competidores usa longitud simple | Este contador aplica las ponderaciones oficiales; confía en la tarjeta roja antes que en totales genéricos |
| Palabras con acentos cuentan diferente en otro lugar | Otras herramientas omiten la normalización NFC | Este contador normaliza primero – su número coincide con X |
| Copiar no hizo nada | Permiso de portapapeles denegado por el navegador | Concede acceso al portapapeles o selecciona manualmente y copia con Ctrl/Cmd+C |
Privacidad y manejo de datos
Esta herramienta pertenece a la familia de cero peticiones del sitio – la clase de privacidad más estricta que Toollect ofrece.
- Nada sale de tu dispositivo. Borradores, hashtags, menciones y conteos existen solo en la pestaña de tu navegador. Ningún servidor de Toollect, ningún punto final de terceros, ninguna analítica toca el texto que escribes.
- Sin cuenta, sin almacenamiento, sin cookies de rastreo. Cierra la pestaña y todo rastro desaparece – no hay historial que borrar porque nunca se escribió.
- El contador funciona sin conexión. Una vez cargada la página puedes cortar la conexión y seguir contando.
- El uso del portapapeles es explícito. El texto llega al portapapeles solo cuando pulsas Copiar – nunca automáticamente.
Si necesitas la misma filosofía de privacidad aplicada al análisis de enlaces, el Analizador de URLs de X (Twitter) de este sitio ejecuta todo su flujo de trabajo con cero peticiones también.
Especificaciones técnicas
Detalles:
- Límite – 280 caracteres ponderados; cada enlace se aplana a 23; todas las demás unidades pesan 1 o 2 según la tabla de rangos
- Rangos ligeros – U+0000–U+10FF, U+2000–U+200D, U+2010–U+201F, U+2032–U+2037 (peso 1); todos los demás puntos de código pesan 2
- Normalización – entrada convertida a Unicode NFC antes de contar
- Segmentación – Intl.Segmenter en modo grafema; los clústeres con marcadores emoji (VS16, ZWJ, keycap, U+1F000+, U+2600–27BF) pesan 2 atómicamente; respaldo a iteración por puntos de código donde Segmenter no está disponible
- Gramática de enlaces – una dirección https:// o http:// (frontera inicial en inicio/espacio/corchete abierto) o un dominio sin protocolo cuyo TLD figure en las listas oficiales gTLD/ccTLD; un dominio pegado tras guion/guion bajo/punto/barra no se parsea; puntuación final excluida del enlace y contada como texto
- Gramática de hashtags – #/# más al menos una letra dentro de [\p{L}\p{N}_]+; el carácter previo no debe ser letra, dígito, guion bajo ni ampersand; el siguiente no debe ser símbolo de hash; símbolos de ancho completo aceptados
- Gramática de menciones – @/@ más 1–20 caracteres de [A-Za-z0-9_]; el carácter previo no debe ser carácter de palabra, exclamación, arroba, hash ni ampersand (incluidos los de ancho completo); una arroba siguiente descarta el candidato
- Estadísticas – total ponderado, conteos de hashtags, menciones, URLs, saltos de línea y párrafos, más listas deduplicadas con insignias ×N
- Tráfico de red – cero; todo el cálculo es JavaScript local
- Soporte de navegadores – todos los navegadores modernos con Intl.Segmenter (Chrome 87+, Safari 14.1+, Firefox 125+) y la API Clipboard
Características
- Cuenta según las reglas ponderadas reales de X – los enlaces cuestan exactamente 23 caracteres, CJK y emoji pesan 2, verificado contra x.com en vivo
- Detección de hashtags y menciones exacta en los límites – 36 casos borde probados en x.com real, desde prefijos emoji hasta hashes dobles y fragmentos pegados
- Seis estadísticas en vivo mientras escribes – caracteres, hashtags, menciones, URLs, saltos de línea y saltos de párrafo
- Correcto en Unicode por diseño – las familias de emoji cuentan como un clúster, los acentos descompuestos se normalizan antes de contar, el árabe pesa 1
- Refleja el X de hoy, no el folclore de 2017 – las menciones iniciales en respuestas cuentan, exactamente como se comporta la plataforma ahora
- Gratuito, privado e instantáneo – todo funciona en tu navegador sin peticiones, sin clave API, sin registro