Counting characters and words sounds trivial until English's own punctuation gets in the way: contractions, hyphenated compounds, and possessives all blur what should count as "one word."
Contractions: one word or two?
"Don't," "it's," and "we'll" are each typed as a single unbroken token, so most word counters treat them as one word — even though "don't" means "do not" and arguably represents two grammatical words fused with an apostrophe. This is why a word count of a casual, contraction-heavy text and its fully expanded formal rewrite can differ noticeably even though they say the same thing.
Hyphenated compounds split the difference
English freely builds compound words with hyphens — "well-known," "twenty-one," "mother-in-law" — and whether a splitter treats the hyphen as a word boundary changes the count. Style guides themselves disagree on when a compound should be hyphenated, written as two words, or fused into one ("well known" vs. "well-known" vs., eventually, "wellknown"-style closed compounds like "email" once was "e-mail").
Why byte size matters for character limits
Plain English text is one of the few cases where character count and UTF-8 byte count line up almost exactly, since ASCII letters take one byte each. That changes the moment curly quotes, em dashes, or emoji sneak in from a word processor's autocorrect — each of those can cost two to four bytes, quietly pushing a text past a byte-based limit even though the character count looks fine.
Why you need this
- Checking text against a character limit (a tweet, an SMS, a form field).
- Estimating an article's reading time from its word count.
- Diagnosing a mismatch between a text's "visible" length and what a character counter in code reports.
Counting words in languages without spaces
In Chinese, Japanese, or Thai, words are traditionally not separated by spaces — the boundary between words is defined by grammar and context, not a delimiter. So "word counting" for these languages actually requires a separate text segmentation algorithm, and simple space-based counting there either yields a single "word" for the whole text or loses its meaning entirely.