Character Counter
Count characters, code points, UTF-16 units and UTF-8 bytes at once, with live limit meters for X, SMS segments, meta descriptions and title tags.
Counts graphemes, code points, UTF-16 units and UTF-8 bytes — they differ for emoji and Korean.
Type or paste to see how it counts against each limit.
Characters (no spaces): 0 · Words: 0 · Lines: 0
Limit meters
How to use
- Type or paste your text — all four counts update as you type.
- Compare characters, code points, UTF-16 units and UTF-8 bytes; hover one for what it means.
- Pick a limit in ‘Highlight limit’ — X, SMS, meta description — or enter a Custom limit.
- Watch the limit meters: ‘Trim to limit’ cuts the text, ‘Normalize (NFC)’ shortens the bytes.
- Use ‘Copy counts’ for the numbers, or ‘Copy text’ for the text as it now stands.
FAQ
Why do you show four different character counts?
Because "one character" means four different things. A family emoji is 1 character to a reader, 7 Unicode code points, 11 UTF-16 units (what JavaScript's .length returns) and 25 UTF-8 bytes (what a VARCHAR column measures). Picking the wrong one is how a "20 character" field rejects a valid name.
Why does my SMS split into two messages at 70 characters?
A single emoji or a curly quote forces the whole message from the GSM-7 alphabet to UCS-2, which fits 70 characters instead of 160. And once a message needs more than one segment, each segment loses room to a header — 153 or 67 instead of 160 or 70. We show which character caused the switch.
Is the Twitter/X count exact?
We use X's weighted counting, where CJK characters and emoji count as 2 and Latin characters count as 1 — so a Korean tweet really is limited to about 140 characters. We count links literally; X shortens every link to 23 characters, so your real length may be a little lower.
Related tools
More Text tools: Text