Character Counter
An online tool to easily count characters, words, lines, and bytes in your text.
Common Character Counting Questions
Learn about character limits across platforms, Unicode complexity, and best practices for text length optimization in 2025.
Twitter's original 140-character limit came from SMS technology (160 chars minus 20 for username). In 2017, they doubled it to 280 because only 9% of English tweets hit the limit vs 0.4% in Japanese.
- Asian languages (CJK) stayed at 140 characters
- Only 1% of tweets now hit 280-char limit
- Most tweets still stay under 190 characters
- X Premium users can post up to 10,000 chars
SMS uses GSM-7 encoding (7 bits per char) for 160 characters. But one emoji or special character forces Unicode (16 bits per char), cutting the limit to just 70 characters per message.
- GSM-7: 160 chars (basic Latin alphabet)
- Unicode: 70 chars (emoji, accented chars)
- Multi-part: 153 chars (GSM) or 67 (Unicode)
- Smart quotes ("") force Unicode encoding
JavaScript/Java use UTF-16, where emoji outside the Basic Multilingual Plane need "surrogate pairs" (2 code units). Complex emoji like 👨👩👧👦 use multiple code points joined by zero-width joiners.
- Basic emoji: 2 chars (surrogate pair)
- Skin tone emoji: 4+ chars
- Flag emoji: 8 chars (two code points)
- Family emoji: up to 11+ chars
Each platform has different limits and optimal lengths. While Facebook allows 63,206 characters, posts under 80 characters get 66% more engagement. Know your platform's sweet spot.
- Facebook: 63,206 max (40-80 optimal)
- Instagram: 2,200 caption (125 before truncate)
- LinkedIn: 3,000 max (100 optimal)
- Instagram bio: 150 characters
Research shows shorter posts generally get more engagement. Facebook posts under 80 characters see 66% higher engagement. Instagram captions under 150 characters perform best.
- Hook readers in first 125 chars (Instagram)
- Front-load key message (LinkedIn truncates)
- Use line breaks for readability
- Test different lengths for your audience
Using string.length in JavaScript can give incorrect counts for emoji and international text. Different platforms count differently - Twitter counts URLs as 23 chars regardless of actual length.
- Not accounting for emoji complexity
- Ignoring platform-specific rules
- Forgetting about URL shortening
- Missing grapheme cluster boundaries