Writing & Text Utility
Character Counter
Count Unicode code points, characters excluding ordinary spaces, and UTF-16 code units without uploading your text.
Count characters in your text
Type or paste text below. Counts update in the browser as the text changes.
What does “character” mean?
Text length is more subtle than it first appears. JavaScript strings are stored as UTF-16 code units. Some Unicode characters outside the Basic Multilingual Plane use two UTF-16 code units, so the JavaScript length property can be larger than the number of Unicode code points.
This tool therefore shows both values. The first counter uses Array.from(text), which iterates the string by Unicode code points. The third counter shows the raw JavaScript UTF-16 code-unit length.
What “without spaces” means here
The second counter removes ordinary U+0020 space characters before counting code points. It does not remove every possible Unicode whitespace character such as tabs, line breaks, non-breaking spaces, or other separators. This explicit rule keeps the count predictable instead of silently applying a broader definition.
Common uses
- Checking a short field or form limit.
- Comparing text before and after editing.
- Inspecting differences between Unicode code points and UTF-16 storage.
- Measuring text locally when you do not want to upload the content to a counting service.
Privacy
The counting logic runs in the browser. The text you enter is not required to leave the page for the counter to work. As a general rule, avoid pasting passwords, API keys, private credentials, or confidential documents into any web tool unless necessary.
Limitations
This is not a word counter, reading-level analyzer, token counter, or social-platform policy checker. Platform limits can also define “characters” differently. If a platform’s own composer reports a different limit, its implementation controls that platform.
Technical reference
MDN: Array.from() documents conversion from iterable values such as strings, while MDN’s Unicode documentation explains the distinction between UTF-16 code units and higher Unicode code points.