Character counts with and without spaces, plus the code point, UTF-16 and byte figures that field limits actually measure. Everything runs in your browser.
Characters are counted as a reader sees them — an emoji or an accented letter is one character.
Waiting for text
Paste or type below. Everything is measured in your browser.
The headline figure counts what a reader sees. A flag, a skin-toned emoji and a letter with a combining accent are each one character, even though each is several Unicode code points and more UTF-16 units again.
That difference matters when a field has a limit: most databases and APIs count code points or UTF-16 units, both of which are listed beside the headline.
Character Counter runs entirely on your device — your writing is never uploaded.
You’re on the Free plan. Compare plans
"How many characters is this?" has three different correct answers, and picking the wrong one is how a message that looked fine gets rejected by a form.
The headline number counts user-perceived characters — what Unicode calls grapheme clusters, and what you would count by pointing at the screen. The flag 🇬🇧 is one character. The developer 👩💻 is one character. A letter with a separately-encoded accent is one character. This uses the browser's own Intl.Segmenter, and the tool says when it has had to fall back to a simpler method.
Below that sit the other two answers. Code points are the individual Unicode values, which is what some APIs count. UTF-16 code units are what JavaScript's String.length reports and what a great many input limits are built on — which is why one emoji can cost you two characters of a 280-character limit. UTF-8 bytes are what storage and network payloads measure.
Characters excluding spaces leaves out every kind of whitespace, not just the space bar: tabs and line breaks go too. A combining accent is never separated from the letter it belongs to.
All of it is measured on your device. Nothing is uploaded.
A grapheme cluster — the unit a reader would point at. An emoji with a skin-tone modifier, a flag made of two regional indicators, and a letter followed by a combining accent are each one character, even though each is several code points.
Because that system is counting UTF-16 code units, which is what JavaScript's String.length returns. Most emoji occupy two. This tool shows that figure separately so you can check against whichever limit applies.
It depends what is enforcing it. Browser form fields and many APIs count UTF-16 units. Databases with a byte limit count UTF-8 bytes. Human-facing limits — a headline, a label — are best judged by the grapheme count. All three are shown.
Yes. Every kind of Unicode whitespace is excluded, not only the space character. A combining mark attached to a visible character is never dropped.
Above roughly 256 KB the tool switches from grapheme counting to the faster code-point count, because segmenting a document that size on every keystroke would make typing stutter. It tells you when it has done this — the figures stay correct for ordinary text, and differ only where emoji or combining marks appear.
No. Counting happens entirely in your browser. Nothing is uploaded, logged or stored.