Character Frequency Analyzer
Count how often each character appears in your text, with Unicode code points, graphemes and UTF-8 byte totals.
- Characters analysed
- 0
- Unique characters
- 0
No characters yet โ paste some text above to see the frequency table.
| # | Character | Code point | Count | Share | Frequency bar |
|---|
Encoding details (code points, graphemes, UTF-8 bytes)
- Code points in text
- 0
- Graphemes
- 0
- UTF-8 bytes
- 0
How it works
Paste your text and the analyzer walks it one Unicode code point at a time, not one UTF-16
unit at a time, groups identical characters together and ranks them by how often they occur.
Every row shows the character itself, its code point in the standard U+XXXX
notation, the raw count and the share of all analysed characters. Use the checkboxes to fold
upper and lower case together, drop spaces and line breaks, or narrow the table down to
letters and digits only.
The counters above the table follow the Unicode standard and RFC 3629 (UTF-8). "Code points in
text" counts every code point in the raw input, "Graphemes" counts user-perceived characters
with Intl.Segmenter, so an e followed by a combining acute accent is
one grapheme but two code points, and "UTF-8 bytes" is the exact byte length the text takes
once encoded as UTF-8. Invisible characters get a name instead of a blank cell, so tabs,
no-break spaces, zero-width joiners and a stray byte order mark are easy to spot. Everything
runs locally in your browser with plain JavaScript, so nothing you paste is uploaded, logged
or stored. Copy or download the full table as CSV to take it into a spreadsheet.
Frequently asked questions
How do I count how many times a character appears in text?
Paste or type your text into the box above. The analyzer walks it one character at a time, groups identical characters together and ranks them from most to least frequent, showing the count and the share of the total for each one. The table updates as you type, so there is no button to press, and you can copy or download the whole thing as CSV.
Does it handle emoji, accents and other Unicode characters correctly?
Yes. The tool iterates Unicode code points rather than UTF-16 units, so an emoji like U+1F600 counts as one character instead of two, and every row shows the code point in the standard U+XXXX notation. The stats also separate code points from graphemes: an "e" followed by a combining acute accent is two code points but one grapheme, and the UTF-8 byte total follows RFC 3629, so you can see the real encoded size.
Can I ignore case, spaces or punctuation?
Yes. Untick "Case sensitive" to merge A and a into one row, untick "Include spaces and line breaks" to leave whitespace out of the counts, or tick "Letters and digits only" to hide punctuation and symbols entirely. Invisible characters that are included get a name such as Tab, No-break space or Zero-width joiner, so hidden characters in pasted text are easy to spot.