Count the characters in your text
Characters with and without spaces, UTF-8 bytes, and SMS segments — checked live against the limits that actually cut text off.
Character counter
- Without spaces
- 0
- Words
- 0
- Lines
- 0
- UTF-8 bytes
- 0
- SMS segments
- 0
Against common limits
- SEO title tag 0 / 60
Beyond this Google usually truncates the title in results.
- SMS, one segment 0 / 160
Drops to 70 if the message contains a non-GSM character.
- Meta description 0 / 155
Roughly where search result snippets get cut.
- X / Twitter post 0 / 280
X weights some character ranges, so its own count can differ.
- Instagram caption 0 / 2200
Only the first ~125 characters show before 'more'.
- LinkedIn post 0 / 3000
The first ~210 characters show before 'see more'.
Three different things called length
Asking how long a piece of text is has more than one correct answer, and the gap between them is where form validation quietly breaks. This page shows all three because you cannot tell in advance which one the thing rejecting your text is using.
- Characters — what a reader counts. An emoji is one, an accented letter is one, a Chinese character is one. This is the headline figure, and it is what nearly every published platform limit refers to.
- UTF-16 units — what JavaScript's
.lengthreturns. Most emoji are two, so a browser-side check allowing 100 "characters" may reject text this page counts as 90. - UTF-8 bytes — what storage and transport measure. ASCII is one byte per
character, accented Latin is two, most CJK is three, emoji are four. A
VARCHAR(255)sized in bytes holds only 85 Chinese characters.
For plain English these three numbers are identical, which is exactly why the difference goes unnoticed until someone pastes in a name with an accent or an emoji and the save fails with an unhelpful error.
Why SMS is stranger than it looks
Text messages are billed per segment, and two rules decide how many segments you need.
The first is encoding. A standard SMS uses GSM-7, a 160-character alphabet that includes the
straight apostrophe ' but not the curly ’ that autocorrect
produces. One character outside that alphabet — a curly quote, an em dash, any emoji —
forces the whole message into UCS-2, where a segment holds 70 characters instead of 160. A
single invisible substitution can more than double the cost of a send.
The second is the concatenation header. Once a message spans multiple segments, each one gives up space to the header that reassembles them, so capacity per segment falls to 153 in GSM-7 and 67 in UCS-2. Two segments hold 306 characters, not 320. Going one character over 160 therefore costs you fourteen characters of room, not one — which is why marketing copy so often stops just short of the boundary.
Where the limits come from
The limits checked above are the ones that visibly cut text off. A title tag past roughly 60 characters gets truncated in search results, and a meta description past about 155 the same way — both are soft limits enforced by pixel width rather than character count, so treat them as guidance rather than a hard edge. Instagram and LinkedIn allow long posts but collapse them after a couple of hundred characters, so the first sentence is doing nearly all the work. X is the one genuine exception to a plain count: it weights CJK and several other scripts as two characters each and normalises links to a fixed length, so its own counter will disagree with this one on anything that is not Latin prose.
Counting whole words instead? The word counter gives words, sentences, paragraphs, and reading time, and the keyword density tool shows which terms and phrases a piece of text actually leans on.
Common questions
Are spaces counted as characters?
Both figures are shown, because different places want different answers. Almost every platform limit — a tweet, a meta description, an SMS, a database column — counts spaces, so the headline number here includes them. Academic and translation work more often quotes characters excluding spaces, and some pricing is quoted per character without spaces, which is why that count sits directly beneath rather than being hidden behind a toggle. If someone has given you a limit and not said which they mean, they almost certainly mean the one that includes spaces.
Why does my emoji count as one character but two somewhere else?
Because there are three different things all called "length". This page counts what a reader would call characters, so an emoji is one. JavaScript's string length counts 16-bit units, and most emoji sit outside the Basic Multilingual Plane, so they take two — which is why a form that allows 100 characters may reject your text at 90. UTF-8 bytes are different again: an emoji is four. The byte count is shown separately because that is what a database column sized in bytes and an HTTP header actually measure, and it is the one that causes the mysterious rejections.
Why did one curly apostrophe halve my SMS capacity?
A plain SMS is encoded with GSM-7, a 7-bit alphabet holding 160 characters per segment. That alphabet contains the straight apostrophe but not the curly one that word processors and phones autocorrect it into. A single character outside the set forces the entire message into UCS-2, where a segment holds only 70 characters — so one invisible substitution can double or triple what a campaign costs to send. The segment panel names the exact character that caused the switch, which is usually enough to find and replace it.
Why do two SMS segments hold 306 characters and not 320?
Once a message needs more than one segment, each part carries a small header telling the receiving phone how to reassemble them in order. That header eats space from the payload, so per-segment capacity drops from 160 to 153 characters in GSM-7, and from 70 to 67 in UCS-2. The practical consequence is that going one character over 160 costs you far more than one character of room, and it is why messages are so often trimmed to land just under a segment boundary.
Does this match X's own character counter?
Usually, but not always. X counts most Latin, and characters in a handful of other ranges, as one, while counting CJK and several other scripts as two — so a post in Japanese hits the 280 limit at around 140 characters by this page's count. Links are also normalised to a fixed length regardless of the real URL. For English prose the two figures agree; for anything else, treat the limit panel as a close guide rather than the authority.
Does my text get uploaded?
No. Counting runs entirely in your browser, and nothing is sent to a server, logged, or stored. The page keeps working with the network disconnected once it has loaded, which is the simplest way to confirm the claim for yourself.