Updated · Built and checked by the PlinzoTools team, formulas tested against published sources
Count how often each character appears in a text, sorted by frequency.
| Char | Count | % |
|---|---|---|
| o | 4 | 11.4% |
| e | 3 | 8.6% |
| h | 2 | 5.7% |
| u | 2 | 5.7% |
| r | 2 | 5.7% |
| T | 1 | 2.9% |
| q | 1 | 2.9% |
| i | 1 | 2.9% |
| c | 1 | 2.9% |
| k | 1 | 2.9% |
| b | 1 | 2.9% |
| w | 1 | 2.9% |
| n | 1 | 2.9% |
| f | 1 | 2.9% |
| x | 1 | 2.9% |
| j | 1 | 2.9% |
| m | 1 | 2.9% |
| p | 1 | 2.9% |
| s | 1 | 2.9% |
| v | 1 | 2.9% |
| t | 1 | 2.9% |
| l | 1 | 2.9% |
| a | 1 | 2.9% |
| z | 1 | 2.9% |
| y | 1 | 2.9% |
| d | 1 | 2.9% |
| g | 1 | 2.9% |
This tool counts how many times each character appears in a text, sorted from most to least frequent, with each character's percentage share of the total. It's a classic tool for basic cipher analysis, and also useful for spotting unexpected or hidden characters in a data dump.
Paste text. Whitespace is always excluded from the count. A ranked table of every character and its frequency appears instantly.
Each character in the text is tallied into a running count, then the results are sorted descending by count. Percentage share is each character's count divided by the total character count considered.
For decoding classical ciphers directly once you've identified the pattern, see the Caesar Cipher Tool.
The output is a table with three columns: the character, its count, and its percentage of all counted characters, rounded to one decimal place. Rows are ordered from the most frequent character to the least frequent. When two characters have the same count, they stay in the order in which they first appeared in your text. The tool starts with the sentence about a quick brown fox already filled in, so you can see how the table looks before pasting your own material.
Whitespace characters (spaces, tabs and line breaks) are left out of both the table and the total. That means the percentages describe only visible characters, and they always add up to 100 percent of those characters. The page does not offer a switch to include spaces, so if spacing itself matters to you, count it separately.
Take the sample sentence "The quick brown fox jumps over the lazy dog". Ignoring the eight spaces, it has 35 characters. The letter o appears four times, so it heads the table with a count of 4 and a share of about 11.4 percent (4 divided by 35). The letter e appears three times, and h, u and r appear twice each. Notice that a capital T and a lowercase t are separate rows, each with a count of 1, because the comparison is case-sensitive. If you want them combined, convert your text to a single case first and then paste it in.
Percentage = character count / total non-whitespace characters x 100
For a substitution cipher, look at the top few rows and compare them with what you expect in the source language. A short message may not follow typical letter patterns at all, so a frequency table is far more convincing on paragraphs than on a single line. If the text is very short, treat the ranking as a hint rather than proof. Also strip out punctuation and digits mentally, since they appear in the table as their own rows and can push letter percentages down.
Text copied from web pages and documents sometimes contains unusual characters such as curly quotation marks, non-breaking spaces or zero-width marks. Those show up as extra rows with a count of 1 or 2 near the bottom of the table. A row that looks blank or that duplicates a character you can already see is a strong sign that something invisible or look-alike is present. Because characters are counted as whole Unicode characters rather than raw bytes, an emoji or accented letter is one row, not several.
In English text, "e" is by far the most common letter -- in a simple substitution cipher (like Caesar), the most frequent character in the ciphertext is very often the encoded "e", giving a starting point for cracking the shift without brute force.
Yes -- uppercase and lowercase versions of the same letter (e.g. "A" and "a") are counted as different characters, matching how the underlying text actually differs byte-for-byte.
No -- whitespace is always excluded from the count (there is no toggle to include it), since spaces usually aren't analytically interesting.
They keep the order in which they first appeared in your text, since the sort only orders by count.
Yes. Every non-whitespace character, including punctuation, digits and symbols, gets its own row and is part of the percentage total.
Convert your text to one case before pasting it here. The tool itself treats A and a as different characters.
Yes. Each emoji or accented letter is counted as a single character rather than being split into bytes.
Reference: MDN Web Docs