Skip to main content
Posts on X can contain up to 280 characters. However, not all characters count equallyβ€”emojis, URLs, and certain Unicode ranges have special counting rules.

Character weights

X uses a weighted character counting system. Most characters count as 1, but some count as 2:
Use the open-source twitter-text library to accurately count characters in your app.

Emoji counting

All emojis count as 2 characters, regardless of complexity: Zero-width joiners (ZWJ) combine emojis visually but don’t add to the count.

URL handling

All URLs are wrapped with t.co shortener and count as 23 characters, regardless of the original length:
This applies to any valid URL detected in post text.

Special cases


Text encoding

The X API requires UTF-8 encoding. Character length is calculated using Unicode Normalization Form C (NFC). Example with cafΓ©: X normalizes to NFC, so both encode to 4 characters.

Implementation

Use the official twitter-text library for accurate character counting:
The library handles all edge cases including emoji sequences, URL detection, and Unicode normalization.

Resources

twitter-text library

Official open-source library for text parsing.

Configuration file

Character weight definitions and Unicode ranges.