ReadoutKit

Word & character counter

Count words, characters and reading time — with emoji and accents counted the way people count them.

Runs entirely in your browser. Nothing you enter is uploaded.

Written and maintained by ReadoutKit / Takashi Yamazaki

How this works

What counts as one character

“How many characters is this?” has more than one correct answer, and the differences are not trivial. There are three levels a computer can count at:

  • Code units — how the text is stored. This is what string.length returns in JavaScript. An emoji can be several units long.
  • Code points — individual entries in the Unicode standard. Better, but a letter with a separate combining accent still counts as two.
  • Grapheme clusters — what a reader would call a character. This is what the main count above reports.

Below, the same strings are run through the same counter as above. Each row is one thing a person would call a single character.

TextWhat it isCharactersCode pointsCode units
caféPrecomposed é444
cafée + combining accent455
𠮷Kanji outside the basic plane112
👍🏽Emoji with a skin tone124
👨‍👩‍👧Family: three emoji joined158
🇯🇵Flag: two regional indicators124

The two spellings of café are the sharpest case: they look identical, they are identical to a reader, and one is a code unit longer than the other. Text copied out of a Mac filename or an older CMS is often in the second form, which is why the same paragraph can measure differently depending on where it was pasted from.

The family emoji is one character, five code points and eight code units — an eightfold spread on a single glyph. If a form rejects your text as too long when your counter says it fits, this is almost always why: the form is counting storage, and you are counting characters.

Full-width counting

Japanese forms frequently count a full-width character — kana, kanji, full-width punctuation — as two units and a half-width character as one. The width column below is that count; the last column is how much text actually fits under a “100 character” limit of that kind.

TextWhat it isCharactersWidth unitsFits in 100
こんにちはKana and kanji51050
HelloHalf-width Latin55100
ABCFull-width Latin3650
アイウHalf-width kana33100

So a “100 character” field holds 50 Japanese characters or 100 Latin ones, and the full-width Latin letters an IME produces cost the same as kanji — which is why a form can rejectABC while accepting ABC. Half-width kana are the reverse case: they look like Japanese and count as Latin.

The width count is shown alongside the plain character count above rather than instead of it, because you generally need to know both: one is what the form counts, the other is what you wrote.

Words, without spaces to guide you

Word counting is easy in languages that separate words with spaces and impossible to do perfectly in those that do not. Splitting Japanese text on whitespace returns one word, which is useless. Genuine word segmentation for CJK requires a dictionary and is beyond what a browser tool should carry.

The compromise here: count each CJK character as one word, split the remaining text normally, and add them. For a mixed sentence like “API を使う” you get four. It will not match a linguistic parser, but it is stable, predictable, and close enough for length estimation.

The limits worth watching

WherePractical limit
Page title in search resultsAbout 60 characters before truncation
Meta descriptionAbout 160 characters
Social post280 characters on most platforms

Search engines truncate by pixel width rather than character count, so a title in wide capitals gets cut sooner than one in narrow lowercase. Sixty characters is a working rule, not a hard boundary.

When a form says your text is too long

Three checks, in the order that resolves it fastest.

Count the width, not the characters. If the field belongs to a Japanese service and your text is Japanese, the limit is almost certainly in width units, so the real allowance is half what it says. The width figure above is the one to compare.

Look for emoji. A form counting storage sees a family emoji as eight, not one. Removing a few emoji can free more room than deleting a sentence, which is a strange thing to discover under a deadline rather than in advance.

Retype accented words. Text pasted from a filename, a PDF, or an older CMS can carry combining accents, making every accented letter cost an extra unit invisibly. Retyping the word normalises it.

If none of the three explains the gap, the form is probably counting after adding something of its own — a signature, a tracking suffix, or an expanded link — and no local counter can see that.

The word frequency list

The most-used words panel is a quick way to catch a habit you cannot see while writing. If one term appears far more often than anything else, the text is usually either repetitive or circling a point it has not made yet. Tokens shorter than three letters are excluded, since articles and prepositions would otherwise fill the entire list.

Common questions

Why does an emoji count as more than one character?
Because most systems count storage rather than what you see. A family emoji is a single grapheme cluster to a reader, but five Unicode code points joined by invisible connectors, stored as eight UTF-16 code units. The counter above reports all three so you can tell which number a form is using. A skin-tone thumbs-up is one character, two code points and four code units for the same reason: the tone is a separate modifier attached to the base emoji.
Why do two identical-looking words count differently?
They are probably spelled differently underneath. An accented letter can be stored as one precomposed code point or as a plain letter followed by a combining accent — "café" is four characters either way, but five code units in the second form. Text pasted from macOS filenames, PDFs and older systems often arrives in the combining form. Retyping the word is the quickest fix.
Why does my emoji count as one character here but eight elsewhere?
Because most counters report UTF-16 code units — what JavaScript's .length returns — and a family emoji is built from several code points joined by invisible connectors. This tool counts grapheme clusters instead: the units a person would point at. Both numbers are real, but only one of them matches what you see on screen.
Which count does a social platform or CMS use?
It varies, which is precisely the problem. Some count code units, some count code points, some count grapheme clusters, and Japanese forms often count full-width characters as two. This page shows the character count and the full-width count side by side so you can match whichever one your form is using.
How are words counted in Japanese or Chinese?
Those languages do not put spaces between words, so a whitespace split returns one enormous "word". This counter treats each CJK character as a word and splits the remaining text on whitespace, then adds the two. It is an approximation, but it produces a usable number instead of a meaningless one.
Where does the reading time come from?
About 200 words a minute for Latin text and about 400 characters a minute for Japanese, which are conventional figures for reading aloud at a comfortable pace. Silent reading is faster — often half again — so treat the estimate as an upper bound for presentations and scripts.
Is my text uploaded anywhere?
No. Every count runs in your browser as you type. Nothing is sent, stored, or logged, which is worth knowing if you are pasting something confidential to check its length.

Sources

The formulas and rates used by this tool come from the documents below. Rules change; when a figure here disagrees with the source, the source is right.

Figures checked against the sources below on September 1, 2026.

Other tools