Les Publications sur X peuvent contenir jusqu’à 280 caractères . Cependant, tous les caractères ne sont pas comptés de la même manière : les émojis, les URL et certaines plages Unicode ont des règles de comptage spécifiques.
X utilise un système de comptage pondéré des caractères. La plupart des caractères comptent pour 1, mais certains comptent pour 2 :
Type de caractère Poids Nombre maximal de caractères Latin, ponctuation, symboles courants 1 280 Emojis 2 140 emojis CJK (chinois, japonais, coréen) 2 140 caractères Autres caractères Unicode 2 (par défaut) Varie
Utilisez la bibliothèque open source twitter-text pour compter précisément les caractères dans votre application.
Tous les émojis comptent pour 2 caractères , quel que soit leur niveau de complexité :
Emoji Affichage Nombre de caractères Unicode 👾 Émoji unique 2 U+1F47E 🙋🏽 Avec modificateur de couleur de peau 2 🙋 + 🏽 modificateur 👨🎤 Combiné avec ZWJ 2 👨 + ZWJ + 🎤 👨👩👧👦 Séquence familiale 2 4 émojis + 3 ZWJ
Les caractères de jointure de largeur nulle (ZWJ) combinent les émojis visuellement mais n’augmentent pas le nombre de caractères.
Toutes les URL sont raccourcies via le service t.co et comptent pour 23 caractères , quelle que soit leur longueur d’origine :
https://example.com → 23 caractères
https://example.com/very/long/path → 23 caractères
Ceci s’applique à toute URL valide détectée dans le texte de la publication.
Contenu Règle de comptage @mentions dans les réponses Les @mentions ajoutées automatiquement au début des réponses ne sont pas comptabilisées Nouvelles @mentions Les @mentions que vous ajoutez manuellement sont comptabilisées normalement Médias Les médias joints (via les clients officiels) comptent pour 0 caractère Hashtags Sont comptés normalement (# + texte du hashtag)
L’API X requiert un encodage UTF-8 . La longueur des caractères est calculée en utilisant la forme de normalisation Unicode C (NFC).
Exemple avec café :
Forme Octets Caractères NFC (composé) c a f é4 NFD (décomposé) c a f e ́5
L’API X applique une normalisation NFC, de sorte que les deux s’encodent sur 4 caractères.
Utilisez la bibliothèque officielle twitter-text pour compter précisément les caractères :
import { parseTweet } from 'twitter-text' ;
const result = parseTweet ( 'Hello, world! 👋' );
console . log ( result . weightedLength ); // 16
console . log ( result . valid ); // true
from twitter_text import parse_tweet
result = parse_tweet( 'Hello, world! 👋' )
print (result.weightedLength) # 16
print (result.valid) # True
La bibliothèque gère tous les cas particuliers, y compris les séquences d’émojis, la détection d’URL et la normalisation Unicode.
Bibliothèque twitter-text Bibliothèque open source officielle pour l’analyse de texte.
Fichier de configuration Définitions des poids des caractères et des plages Unicode.