X character counter
X allows 280 characters in a standard post, but it weighs them: every link counts as 23, and emoji and Chinese, Japanese or Korean characters count as 2. This counter weighs your text exactly the way X does.
- Runs in your browser
- Nothing uploaded
- No sign up
189 / 280
- X count
- 189
- What X measures
- You see
- 208
- Visible characters
- Links
- 1
- 23 counted
- Emoji
- 1
- 2 counted
- Heavy
- 0
- 0 counted
- Light
- 164
- 164 counted
Tap or point at any character to see why it weighs what it does. Arrow keys work too.
1 link found. Each one counts as 23 however long it looks.
How to use the X character counter
- 1
Paste your post
Type or paste your draft into the editor, or start from one of the examples.
- 2
Pick the limit
Choose Standard 280, or Premium 25,000 if you write longer posts as a subscriber.
- 3
Read the ring
The ring shows how many characters are left, and turns red when you go over.
- 4
Inspect any character
Tap a character in the weight strip to see why it counts as 1, 2 or 23.
How X counts characters
- Rule 1
Normalize
Accents typed as two marks merge into one letter.
e + ´ → é - Rule 2
Light ranges weigh 1
Latin, Greek, Cyrillic, Arabic, Hebrew, Indian scripts, Thai.
aЖعक - Rule 3
Everything else weighs 2
Chinese, Japanese, Korean and symbols like … • €.
字…•€ - Rule 4
Emoji 2, links 23
Whole emoji and whole links get a flat price.
🇯🇵👨👩👧
Key takeaway
The heavy side is not only Asian scripts. The bullet, the ellipsis, arrows, the euro sign and Unicode bold letters all count as 2, and they are the usual reason an English post runs over.
Weight table by Unicode range
Tap any sample to inspect its code point.
- U+0000 to U+10FF0 to 435111
Latin letters with and without accents, digits, basic punctuation, Greek, Cyrillic, Hebrew, Arabic, Devanagari, Thai, Georgian and more
- U+2000 to U+200D8192 to 820511
Typographic spaces of different widths, the zero width space and the joiners that glue emoji together
- U+2010 to U+201F8208 to 822311
Curly quotes, the typographic dash family and the double vertical line
- U+2032 to U+20378242 to 824711
Prime marks, used for feet, inches, minutes and seconds
- Everything elseoutside the four ranges22
Chinese, Japanese and Korean, the ellipsis, bullets, the euro sign, arrows, trademark signs, styled letters and all emoji
Inspector
- Name
- euro sign
- Code point
- U+20AC
- Decimal
- 8364
Outside the light ranges, so X counts it twice.
Why every link counts as 23 characters
X wraps every link in its own short t.co address, which has a fixed length. So every link costs the same 23, whatever you paste.
- Tracking parameters are free. The link costs 23 either way.
- Shortening a link yourself saves nothing.
- Even a.io takes 23 of a short post's 280.
- Email addresses are not links. They count letter by letter.
What you paste
https://relay.dev/blog/2026/09/how-we-cut-cold-starts-in-half?utm_source=x&utm_medium=social
92 characters on screen
What X counts
Characters that count more than they look
- 21 seen
👨👩👧👦
A family emoji
Seven code points, one emoji, so it costs 2.
- 21 seen
🇯🇵
A flag
Two regional letters shown as one flag: 2.
- 105 seen
ありがとう
Japanese
Five characters, ten counted.
- 65 seen
Wait…
The ellipsis
The single … character weighs 2. Three full stops weigh 3.
- 234 seen
a.io
A tiny link
Four characters on screen, 23 counted.
- 84 seen
𝐁𝐨𝐥𝐝
Styled letters
Unicode bold letters count double.
- 44 seen
café
Accents typed two ways
X normalizes first, so both forms count as 4.
- 105 seen
감사합니다
Korean
Every Hangul syllable weighs 2.
- 63 seen
नमस्ते
Hindi
Light range: each of the six code points counts once.
- 1212 seen
Done. ↵ ↵ Next.
A blank line
Two line breaks, 1 each.
- 64 seen
• €5
Bullets and the euro
The bullet and the euro sign weigh 2 each.
- 2378 seen
https://example.com/blog/2026/09/how-we-cut-cold-starts-in-half?ref=newsletter
A huge link
Over seventy characters on screen, still 23.
How to shorten a post that is over 280 characters
The launch post that ran over
🚀🚀 Big news!!! After 18 months of work, Relay 2.0 is finally here… Cold starts are 60% faster, deploys are 2× quicker, and the dashboard has been rebuilt from scratch → https://relay.dev/blog/relay-2-0-release-notes-and-migration-guide ✅ No code changes ✅ Works with every region ✅ Free for all plans Try it today and let us know what you think! 🙌
Relay 2.0 is here. Cold starts are 60% faster and deploys take half the time. No code changes. Every region. Free on all plans. Notes: https://relay.dev/blog/relay-2-0-release-notes-and-migration-guide
Emoji, the ellipsis and the arrows cost 2 each. Cutting them saved more than shortening the link could.
A bilingual announcement
We're opening our Tokyo office next month! 東京オフィスを来月オープンします。エンジニア、デザイン、サポートの採用も始めました。詳しくはウェブサイトをご覧ください。ご応募をお待ちしています。 Hiring for engineering, design and support roles right now, with full details and the application form on our careers site.
Our Tokyo office opens next month, and we're hiring for engineering, design and support. 東京オフィスを来月オープンします。採用中です。
Japanese fills the post twice as fast. Saying less in each language brought it back under 280.
X character limits at a glance
Counting built into the composer
Kairo Post weighs every draft the same way, live. A post over the limit is stopped before it publishes or spends a credit, and a long draft becomes a thread in one step. See the publishing feature.
Questions about the X character limit
More writing helpers are in the tools library.
What is the character limit on X?
Why does X say my post is too long when my word processor says it fits?
Do spaces and line breaks count on X?
How many characters does a link use in an X post?
Do emoji count as two characters on X?
Do @mentions and hashtags count toward the limit?
Is this counter exactly the same as X's composer?
Is my text sent anywhere?
Written by Jonas Ben, founder of Kairo Post. Updated .
More tools
All toolsPost at the right moment.
Starting today.
Connect an account, describe your voice and let Kairo Post do the legwork.