Result
This page has no server side at all. The table you paste is parsed by JavaScript inside your own browser, the chart is drawn on a canvas element on your machine, and the export file is assembled locally. Nothing is uploaded, stored or written to any log. You can disconnect from the network after the page has loaded and everything will still work — which is the simplest way to verify the claim yourself.
Facts and limits of this method
| Unique character | Every distinct kind of character is counted once, no matter how many times it repeats |
|---|---|
| Case-sensitive | "A" and "a" are two different characters |
| Not case-sensitive | "A" and "a" are folded into one before counting |
| "Ignore spaces and punctuation" | Removes spaces and a standard set of punctuation marks from the count |
When it misleads you
- Counting is done by code point, not by "visible" character — an emoji made of several code points, or a letter with a separately-composed diacritic, can be counted as several different characters instead of one visible one.
- The list of punctuation marks excluded by "ignore punctuation" is fixed (.,!?;:'"()[]{}-–—…«»„“) — uncommon symbols like an asterisk or ampersand aren't in that list and are counted as regular characters.
- A pangram (text using every letter of an alphabet) only produces exactly as many unique letters as the alphabet if there are no typos or stray characters — the counter counts literally everything in the input field, not a "corrected" alphabet.
- The uppercase and lowercase form of one letter are counted as different characters when case-sensitivity is on, even though they're conceptually "the same letter."
How it is calculated
The text is split into individual characters; if case-sensitivity is off, every letter is lowercased before the next step.
If "ignore spaces and punctuation" is on, spaces and a fixed set of punctuation marks are removed from the character list.
A frequency table is built for the remaining characters — how many times each one appears; the number of distinct keys in that table is the answer.
The most frequent character is the one with the highest value in the frequency table; ties are broken by whichever was found first.
Questions and answers
Why would I want to count unique characters specifically?
For example, to check a pangram (does the text use every letter of the alphabet), to gauge password diversity, or to find the most frequent character in a text or piece of code.
Do "A" and "a" count as one character or two?
It depends on the "case-sensitive" setting: on, they're two different characters; off, they're treated as the same one.
Does a space count as a character?
Yes, unless "ignore spaces and punctuation" is turned on — then a space is excluded from the count, same as punctuation marks.
Is my text sent anywhere?
No, the whole count runs in your browser.