Saltar al contenido principal
Esta página describe cómo se contabilizan los caracteres al redactar Tweets y en toda la X API. Para obtener más información sobre la implementación, X ofrece la biblioteca de código abierto twitter-text, disponible en GitHub.

Antecedentes

X comenzó como un servicio basado en mensajes de texto SMS. Esto limitó la longitud original de los Tweets a 140 caracteres (en parte debido al límite de 160 caracteres de los SMS, con 20 caracteres reservados para comandos y nombres de usuario). Con el tiempo, a medida que X evolucionó, la longitud máxima de un Tweet aumentó a 280 caracteres: sigue siendo breve y concisa, pero permite una mayor expresión.

Definición de un carácter

En la mayoría de los casos, el contenido de texto de un Tweet puede contener hasta 280 caracteres o glifos de Unicode. Algunos glifos cuentan como más de un carácter. Nos referimos a si un glifo cuenta como uno o más caracteres como su peso. La definición exacta de qué caracteres tienen un peso mayor que uno se encuentra en el archivo de configuración de la biblioteca de análisis de Tweets twitter-text. La versión actual del archivo de configuración define un peso predeterminado de dos caracteres y cuatro rangos de puntos de código Unicode ponderados de forma distinta. Actualmente, todos los puntos de código en estos rangos se cuentan como un solo carácter.
  • El primer rango abarca caracteres de las páginas de códigos Latin‑1 (U+0000 - U+10FF).
  • El segundo rango es puntuación general hasta e incluyendo el Zero Width Joiner (utilizado para combinar emoji y otros glifos) (U+2000 - U+200D).
  • El tercer rango es puntuación general, excluyendo U+200E y U+200F, que son marcas direccionales de Unicode (U+2010 - U+201F).
  • El último rango abarca comillas (U+2032 - U+2037).
Ejemplos de texto de Tweet y longitudes calculadas por la biblioteca twitter-text se pueden encontrar en el archivo de configuración de pruebas validate.yml de la biblioteca. Ejemplos
Carácter mostradoLongitudDescripciónSecuencia Unicode
a1Letra latina minúscula aU+0061
á1Letra latina minúscula a con acento agudoU+00E1
ӑ1Letra cirílica minúscula a con breveU+04D1
1Letra latina mayúscula o con circunflejo y acento agudoU+1ED2

Emojis

Los emojis compatibles con twemoji siempre cuentan como dos caracteres, independientemente de los modificadores combinados. Esto incluye los emojis modificados por el tono de piel de Fitzpatrick o por modificadores de género, incluso si están compuestos por un número significativamente mayor de puntos de código Unicode. El peso de los emojis se define mediante una expresión regular en twitter-text que busca secuencias de emojis estándar combinadas con uno o más unir caracteres de ancho cero de Unicode (U+200D). Ejemplos
Emoji mostradoLongitudDescripciónSecuencia Unicode
👾2Longitud predeterminada de un emoji conocido
🙋🏽2Emoji con modificador de tono de piel🙋 U+1F64B, 🏽 U+1F3FD
👨‍🎤2Secuencia de emoji que usa un glifo combinante (unidor de ancho cero)👨 U+1F468, U+200D, 🎤 U+1F3A4
👨‍👩‍👧‍👦2Secuencia de emoji que usa múltiples glifos combinantes (unidores de ancho cero)👨 U+1F468, U+200D, 👩 U+1F469, U+200D, 👧 U+1F467, U+200D, 👦 U+1F466

Glifos chinos, japoneses y coreanos

Los glifos utilizados en los idiomas CJK (chino, japonés y coreano) también cuentan como dos caracteres. Por lo tanto, un Tweet compuesto únicamente de texto CJK solo puede tener un máximo de 140 de estos glifos.

Objetos de entidad

Los Tweets pueden contener Objetos de entidad, algunos de los cuales afectan la longitud de un Tweet. URL: Todas las URL se encapsulan en enlaces t.co. Esto significa que la longitud de una URL está definida por el parámetro transformedURLLength en el archivo de configuración de twitter-text. La longitud actual de una URL en un Tweet es de 23 caracteres, incluso si normalmente sería más corta. Respuestas: los @nombres que se autocompletan al inicio de un Tweet de respuesta no cuentan para el límite de caracteres. Los nuevos Tweets que no son respuestas y comienzan con una @mención sí cuentan, al igual que las @menciones agregadas explícitamente por el usuario en el cuerpo del Tweet. Multimedia: el contenido multimedia adjunto a un Tweet, representado como una URL de pic.x.com, si se publica desde un cliente oficial, computa 0 caracteres. Para obtener más información sobre los Objetos de entidad, consulta la documentación para desarrolladores.

Codificación de caracteres de X

Los endpoints de la X API solo aceptan texto codificado en UTF-8. Todas las demás codificaciones deben convertirse a UTF-8 antes de enviar el texto a la API. X calcula la longitud de un Tweet utilizando la versión del texto en Normalization Form C (NFC). Como ejemplo: la palabra “café”. Existen dos secuencias de bytes que visualmente se ven y se leen igual, pero usan un número diferente de bytes:
café0x63 0x61 0x66 0xC3 0xA9Usando el carácter “é”, el “carácter compuesto”.
café0x63 0x61 0x66 0x65 0xCC 0x81Usando el diacrítico combinante, que se superpone a la “e”
Normalization Form C prioriza el uso de un carácter completamente combinado (0xC3 0xA9 del ejemplo de café) en lugar de la versión en forma larga (0x65 0xCC 0x81). X cuenta el número de puntos de código en el texto, en lugar de bytes UTF-8. El 0xC3 0xA9 del ejemplo de café es un punto de código (U+00E9) que se codifica como dos bytes en UTF-8, mientras que 0x65 0xCC 0x81 son dos puntos de código codificados como tres bytes.
I