Text

Character & Word Counter

Real-time text statistics: characters (with and without spaces), words, lines, sentences, paragraphs, and size in bytes (UTF-8).

0 Characters (with spaces)
0 Characters (without spaces)
0 Words
0 Lines
0 Sentences
0 Paragraphs
0 Bytes (UTF-8)

This tool counts characters, words, lines, sentences, and paragraphs in real time as you type or paste text, and also shows the size in bytes under UTF-8 encoding.

What gets counted

Common uses

Things to keep in mind

One visual "character" (like an emoji with a skin-tone modifier or a country flag) can be made of several Unicode code points and count differently depending on the counting method.

Social media and form limits sometimes count bytes or grapheme clusters rather than characters — check against this tool's byte counter if that matters.

Article about this tool: Counting characters and words: why it's not always trivial

Frequently asked questions

What statistics are exactly calculated?

The tool counts characters with and without spaces, words, lines, sentences, paragraphs, and the text size in UTF-8 encoded bytes.

Why does the byte count differ from the character count?

In UTF-8, a simple Latin character takes one byte, but a Cyrillic character, an accented letter, or an emoji can take two to four bytes, so text with many multi-byte characters will have a byte count noticeably higher than its character count.

Is my text sent to a server to be analyzed?

No, all calculations happen in real time in your browser in JavaScript, nothing is transmitted online.

Why is word counting inaccurate for languages without spaces?

In Chinese, Japanese, or Thai, words are traditionally not separated by spaces — the boundary is defined by grammar and context. Space-based counting for these languages either yields a single "word" for the whole text or loses its meaning — a separate segmentation algorithm is needed.

Why does a single emoji sometimes count as several characters?

Emoji with a skin-tone modifier or country flags are made up of several Unicode code points combined into one visible grapheme cluster. A naive count by code point can count such a visually single character as two, three, or more.

Articles: Text

Case Converter: why different naming styles exist

Why one project writes variables in camelCase but files in kebab-case, and where these rules came from.

Text Diff: how algorithms find the difference between two texts

How a diff algorithm finds the minimal set of changes between two versions of a text.

Regular expressions: basic syntax and common patterns

How to read a regular expression, and how greedy matching differs from lazy matching.

Sorting and deduplicating lines: why it matters

Why numeric sorting putting "10" before "9" is a mistake, and how to avoid it.

String Escape: why the same text needs escaping differently

Why the same quote character gets escaped differently in a JS string, JSON, and a shell command.

CRLF vs LF: why line ending characters still matter

Why a file written on Windows can show as "entirely changed" in git on Linux.

Lorem Ipsum: where the placeholder text came from and why it exists

Why designers deliberately use "nonsense" text instead of real content in mockups.

Slugify: turning arbitrary text into a URL

How a title like "Hello, World!" turns into a URL-safe string like hello-world.

Markdown: why plain-text syntax beat rich text editors

Why developers choose to write documentation in Markdown instead of a rich text editor.

Whitespace and invisible characters: the hidden cause of weird bugs

Why two strings that look identical can fail to match because of an invisible character.

Text Reverse: why "reversing text" is harder than it sounds

Why a naive string reversal can turn an emoji into unusable bytes.

Text frequency analysis: why count how often words repeat

How letter frequency in ciphertext helps crack the simplest substitution ciphers.