Passer au contenu principal
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.

Poids des caractères

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èrePoidsNombre maximal de caractères
Latin, ponctuation, symboles courants1280
Emojis2140 emojis
CJK (chinois, japonais, coréen)2140 caractères
Autres caractères Unicode2 (par défaut)Varie
Utilisez la bibliothèque open source twitter-text pour compter précisément les caractères dans votre application.

Comptage des émojis

Tous les émojis comptent pour 2 caractères, quel que soit leur niveau de complexité :
EmojiAffichageNombre de caractèresUnicode
👾Émoji unique2U+1F47E
🙋🏽Avec modificateur de couleur de peau2🙋 + 🏽 modificateur
👨‍🎤Combiné avec ZWJ2👨 + ZWJ + 🎤
👨‍👩‍👧‍👦Séquence familiale24 é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.

Gestion des URL

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.

Cas particuliers

ContenuRègle de comptage
@mentions dans les réponsesLes @mentions ajoutées automatiquement au début des réponses ne sont pas comptabilisées
Nouvelles @mentionsLes @mentions que vous ajoutez manuellement sont comptabilisées normalement
MédiasLes médias joints (via les clients officiels) comptent pour 0 caractère
HashtagsSont comptés normalement (# + texte du hashtag)

Encodage du texte

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é :
FormeOctetsCaractè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.

Implémentation

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
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.

Ressources

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.