Saltar al contenido principal
Esta página explica cómo se consideran los caracteres al redactar Tweets y en toda la X API. Para obtener más detalles 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 SMS. Esto limitó la longitud original de los Tweet a 140 caracteres (en parte debido al límite de 160 caracteres de los SMS, con 20 reservados para comandos y nombres de usuario). Con el tiempo, a medida que X evolucionó, la longitud máxima de los Tweet aumentó a 280 caracteres: aún breve y concisa, pero permitiendo 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 con ponderaciones distintas. Actualmente, los puntos de código en estos rangos se cuentan todos 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 el Zero Width Joiner inclusive (usado 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 las comillas (U+2032-U+2037).
Ejemplos de texto de Tweets 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 emoji compatibles con twemoji siempre cuentan como dos caracteres, independientemente de los modificadores combinados. Esto incluye los emoji modificados por tono de piel Fitzpatrick o modificadores de género, incluso si están compuestos por muchos más puntos de código Unicode. El peso del emoji se define mediante una expresión regular en twitter-text que detecta secuencias de emoji estándar combinadas con uno o más Unicode Zero Width Joiners (U+200D). Ejemplos
Emoji mostradoLongitudDescripciónSecuencia Unicode
👾2Longitud predeterminada de emoji conocidos
🙋🏽2Emoji con modificador de tono de piel🙋 U+1F64B, 🏽 U+1F3FD
👨‍🎤2Secuencia de emoji que usa glifo combinador (unidor de ancho cero)👨 U+1F468, U+200D, 🎤 U+1F3A4
👨‍👩‍👧‍👦2Secuencia de emoji que usa múltiples glifos combinadores (unidores de ancho cero)👨 U+1F468, U+200D, 👩 U+1F469, U+200D, 👧 U+1F467, U+200D, 👦 U+1F466

Glifos chinos/japoneses/coreanos

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

Objetos de entidad

Los Tweets pueden incluir Objetos de entidad, algunos de los cuales afectan la longitud de un Tweet. URLs: Todas las URL se encapsulan en enlaces t.co. Esto significa que la longitud de una URL la define 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 la URL 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 Tweets nuevos que no son respuesta y que 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, cuenta como 0 caracteres. Para 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 usando la versión del texto en Forma de Normalización C (NFC). Por ejemplo: la palabra “café”. Existen dos secuencias de bytes que se ven y leen igual, pero usan una cantidad 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”.
La Forma de Normalización C prioriza el uso de un carácter completamente combinado (0xC3 0xA9 del ejemplo de café) frente a la versión en forma larga (0x65 0xCC 0x81). X cuenta la cantidad de puntos de código en el texto, en lugar de los 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.