free-character-counter.com

X (Twitter) character counter

Uses the weighted count of X: links count as 23 characters, emoji and CJK characters as 2. Text past 280 is highlighted.

0/280X count
280Left
0Characters
0Words

Everything is counted on your device. Your text is never sent anywhere.

Keyboard shortcuts
/
Jump to the text box
Esc
Leave the text box
Alt+Shift+C
Copy the text
Alt+Shift+K
Clear the text (undo available)
Alt+Shift+O
Open a .txt file
Ctrl+Z / ⌘+Z
Undo inside the text box

Limits

Select a limit to highlight, in your text, everything past it.

Details

Characters
0
Without spaces
0
Visible characters (graphemes)
0
Words
0
Sentences
0
Paragraphs
0
Lines
0
Letters
0
Digits
0
Spaces
0
Emoji
0
UTF-8 bytes
0
UTF-16 code units
0
Reading time
0 s
Speaking time
0 s

Most frequent

  1. The most frequent words show up here.

How X counts characters

A standard X post can hold 280 characters, but X does not count every character the same way. Links always count as 23, emoji count as 2, and Chinese, Japanese and Korean characters count as 2. This page applies those rules, so the number above is the one X will show.

X publishes its counting rules in its developer documentation ("Counting characters") and in the open source twitter-text library used by its apps. The main points:

  • Weight 1: Latin letters (including accented ones), digits, punctuation, Greek, Cyrillic, Hebrew, Arabic and other scripts up to the Unicode block U+10FF, plus common typographic spaces and quotation marks.
  • Weight 2: everything else, mainly Chinese, Japanese and Korean characters, and every emoji.
  • Emoji: one emoji counts 2 even when it is built from several code points, like a flag, a skin tone or a family. A family emoji is 11 units in JavaScript but 2 on X.
  • Links: every URL is shortened to a t.co link and counts as 23, whether it is 12 or 300 characters long.
  • Normalization: the text is normalized (Unicode NFC) before counting, so an accented letter counts 1 however it was typed.

Examples

TextX count
Hello5
日本語6
👍🏽 (thumb with skin tone)2
Read https://example.com/a/very/long/article-title28
Read example.com28

Domain names typed without https:// also become links when they end in a common extension such as .com or .org, so they count 23 too. Country-code domains such as example.fr are only turned into links when a path follows them; this counter follows the same rule for the common cases.

Longer posts

Accounts with an X Premium subscription can publish longer posts (X currently advertises up to 25,000 characters). The 280 limit still applies to everyone else, and to how much of a long post is shown before "Show more". Replies and direct messages have their own limits.

Tips for fitting in 280

  • Keep links: a long URL costs the same 23 as a short one, so there is no need to shorten it yourself.
  • Watch emoji runs: five emoji already take 10 characters.
  • Select the X limit in the panel (it is selected on this page) and everything past 280 is highlighted, so you know which words to trim.

Posting the same text elsewhere? Bluesky allows 300 visible characters and Threads 500; both are listed in the Limits panel. For other networks, see the Instagram character counter and the LinkedIn character counter.

Sources: X Developer Platform, "Counting characters"; twitter-text configuration v3 (GitHub, twitter/twitter-text).

Frequently asked questions

How many characters can a tweet have?

280 weighted characters for a standard account. Latin characters count 1, CJK characters and emoji count 2, and links count 23. Premium subscribers can post longer texts.

Do links count toward the 280 characters?

Yes, but always as 23 characters, because X replaces every link with a t.co short link of that length.

Do emoji count as 2 characters on X?

Yes. Every emoji counts 2, including combined emoji like flags, skin tones and families.

Do usernames in replies count?

Usernames that X adds at the start of a reply do not count toward the limit. Usernames you type yourself in the text do count.

Why does the X app show a circle instead of a number?

The app shows a progress ring and only displays the remaining number near the end. This page shows the exact weighted count at all times.

Other counters