Skip to content
Dev Utilities

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.