Character frequency
Count every character, including the ones you cannot see.
Only letters and digits are counted, which is what a frequency analysis of a cipher or a language sample needs. Choose Every character to find whitespace and hidden characters. “A” and “a” count as one character. Each row is the character, its count, and its share of the total. A character made of several code points, such as an emoji, counts once. Up to 200,000 characters.
Result
Start typing and the result appears here. No button needed.
Character frequency, without the extra steps.
Break text down character by character, ordered from most to least common, with each one's share of the total. Count only letters and digits for a language or cipher analysis, or count everything — where spaces, line breaks, and invisible characters are named rather than left as blank rows.
How to use this tool
- 1Paste the text you want to break down.
- 2Choose whether to count only letters and numbers or every character, and whether capitals matter.
- 3Read the table, then select Copy result.
When Character frequency is the right tool
- Two strings look identical but one keeps failing an equality check, and something invisible is the reason.
- A cryptogram or a substitution cipher needs its letter frequencies before it can be attacked.
- A password or key policy has to be checked against what characters a sample actually contains.
- A file's text is full of odd spacing and you want to know exactly which space characters are in it.
The invisible rows are the point
Most character counts show you what you already know: e is common, z is not. The rows worth having are the ones you cannot see — a no-break space pasted from a web page, a tab where spaces were expected, a zero-width space that survived a copy. Counting every character names each of those instead of printing a blank row, and anything with no printable form at all appears as its code point, so U+200B in the table is the whole explanation for a value that will not match its twin.
One character means one character to a reader
Counting by code unit splits a family emoji into four faces and three joiners, and separates a letter from the accent that belongs to it. Counting by grapheme keeps each of them as the single character a person sees. That makes the total smaller than the number an editor reports, which is correct for this question — and it is why a line that is six characters here can be thirty-one bytes on disk, which the Longest line finder measures.
Percentages depend on what you counted
Each row's share is of the total counted under the current settings, not of the whole text. With letters and numbers only, the shares describe the alphabet in use — which is what a frequency analysis needs, since including spaces would put the most common character in every language at the top of every list. Switching to Every character adds spaces and punctuation to the denominator and every percentage drops accordingly.
A few quick answers.
Choose Every character. Whitespace and invisible characters are named — (space), (tab), (no-break space) — and anything with no printable form appears as its code point, such as U+200B for a zero-width space. That row is usually the explanation for a value that looks identical to another but refuses to match it.
Yes, and so is a letter with a combining accent. Counting is by grapheme — what a person sees as one character — rather than by code unit, so a family emoji does not appear as four separate faces plus joiners. That is also why the total can be smaller than the character count in an editor.
Of everything counted under the current settings. With letters and numbers only, the shares add up across the letters; switching to Every character adds spaces and punctuation to the denominator, so every percentage drops. That is the intended behaviour — a letter-frequency analysis is meaningless if spaces are in the total.
Because a character here is what a reader sees. An emoji built from several code points counts once, and so does a letter with a separate combining accent. Editors usually report code units, which counts those pieces individually. Both numbers are right for different questions — this one answers how many characters are on the screen.
Yes, with Letters and numbers selected and capitals ignored, which is the conventional setup: the output is each letter, its count, and its share, ordered most to least common. Compare that against the expected distribution for the language you suspect. Digits are included because they behave like letters in most ciphers people actually paste.
No — this counts, it does not locate. Once the table has told you which character is present, Find and replace will show you every occurrence in place and let you remove it, and the Longest line finder narrows a problem down to a line number.