ReadoutKit

Text tools

Count, clean and reshape text.

Every tool below runs in your browser. Nothing is uploaded.

β€œHow long is this text?” has several correct answers

The word and character counter exists because the question it answers is less settled than it looks. A character count depends on what you consider a character, and different systems genuinely disagree β€” which is why the same paragraph pasted into an essay portal, a word processor, and a social platform can produce three different numbers, all of them correct by their own definition.

Three ways to count a character

Unicode gives at least three reasonable units. Code points count the abstract characters in the text. UTF-16 code units count storage slots, which is what many programming languages report by default; characters outside the original Unicode range β€” most emoji, many rarer CJK characters β€” occupy two slots each and therefore count twice. Grapheme clusters count what a reader would call a character: a letter plus its accent as one unit, a flag emoji as one unit, a family emoji built from several joined figures as one unit.

For a single family emoji, those three methods can return one, seven, and eleven. This is the real cause of the familiar frustration where a message rejected as too long looks obviously short: the service is counting storage slots while you are counting what you see. When a limit matters, find out which unit the system on the other side is using.

Word counts assume spaces between words

Counting words means counting runs of characters separated by whitespace, which works for languages that put spaces between words and breaks entirely for those that do not. Japanese, Chinese, and Thai are written without word separators, so a word count either returns something close to one or requires a language-specific segmentation step that different tools implement differently. For those languages the character count is the meaningful measure, and Japanese publishing conventions reasonably enough count characters β€” and manuscript pages of a fixed character grid β€” rather than words.

Even within a space-separated language, the edges are ambiguous. Whether a hyphenated compound is one word or two, whether a number is a word, whether an em dash pressed against its neighbours splits them β€” these are conventions, not facts, and two counters can differ by a percent or so without either being wrong.

Line breaks and invisible characters

Text pasted from a PDF or a formatted document often carries characters that are not visible but do count: non-breaking spaces, zero-width joiners, soft hyphens, and trailing whitespace. They inflate a character count and, when a hard limit is close, can be the entire difference. Line endings differ too β€” some systems store a line break as one character and others as two β€” which shifts counts on long documents by roughly the number of lines.

Counting locally

The counter runs entirely in your browser. Nothing you paste is transmitted, which matters when the text is a draft under embargo, a cover letter, a legal clause, or anything else you would not paste into an unknown server. This is verified by an automated test rather than promised: the build fails if any network request carries data out of the page.