Character counter
Count characters, words, lines and bytes
Word and sentence boundaries are language-dependent. Japanese, Chinese and Thai put no spaces between words at all.
Grapheme clusters used280 left
Characters (grapheme clusters)
0
What a reader sees, and what one press of backspace deletes
Unicode code points
0
What [...text].length gives
UTF-16 code units
0
What text.length gives — and what most varchar(n) columns mean
Words
0
Sentences
0
Paragraphs
0
Lines
0
0 non-blank
UTF-8 bytes
0
What a file size or a network payload measures
Reading time
0min
At 220 words a minute
What is counted, and how
- Characters uses
Intl.Segmenter(locale, { granularity: "grapheme" }), the browser's implementation of Unicode UAX #29 extended grapheme clusters. It is the only definition that matches what a person would count. - Words and sentences also come from
Intl.Segmenter. Splitting on whitespace works for English and fails completely for Japanese, Chinese and Thai, which write without spaces. - UTF-8 bytes is
new TextEncoder().encode(text).length: ASCII is one byte, most European accents two, most CJK three, most emoji four or more. This is the number that matters for file size, HTTP payloads and byte-length column limits. - A paragraph is a run of lines separated by a blank line; lines counts every line, including blank ones, splitting on LF, CRLF or a bare CR.
- Everything is computed in this tab. Nothing is uploaded.