📊Character Frequency Counter

Build a character frequency table

rows

How to use the character frequency table generator

Paste any text and this tool counts how often each character appears, then ranks them from most to least common. It helps when checking whether a piece of writing leans on one letter too heavily, when working through a substitution cipher, or when hunting for a stray symbol that slipped into a data file.

The unit of counting is one character as a person sees it. Grapheme clusters are used, so an emoji counts once, and a family emoji built from several joined code points is still treated as one cluster. On an older browser with no grapheme support, code points are counted instead, and the label above the table says so when that happens.

Three options control the scope. Spaces, line breaks and tabs are excluded by default and can be switched on; because they are invisible in a table, they are written out by name. Punctuation and symbols are counted by default and can be switched off. Upper and lower case are folded together by default, and a separate option keeps them apart. Scripts without letter case, such as Hangul and Han characters, are unaffected either way.

You can choose how many rows the table shows. If there are more distinct characters than that, the label states how many of the total are on screen. The share is calculated against the number of characters actually counted, to one decimal place, so anything the options excluded is missing from the denominator as well. Copy the tab-separated block under the table to paste straight into a spreadsheet.

Frequently asked questions

How many characters is an emoji?

One, exactly as it looks. A family emoji made of several joined code points is grouped into a single cluster and counted once.

What is the denominator of the share?

The number of characters actually counted after the options are applied. If spaces were excluded, they are missing from the denominator too.

Some characters are missing from the table.

They fell outside the row limit. The label states how many of the total are shown, so raise the row count and run the count again.