Home / Tools / Character Counter
Free tool · runs in your browser

Character Counter

Count characters, words, lines, paragraphs, sentences and UTF-8 bytes as you type. Characters are counted by Unicode code point, so emoji and accented characters count as one each rather than two.

How it works

Characters, code points and bytes are three different counts

This is where most counters disagree with each other, and the difference is not academic:

  • Characters here means Unicode code points. é is one, and so is 🙂.
  • Bytes is the UTF-8 encoded length. ASCII characters take 1 byte, most accented and Greek or Cyrillic letters take 2, most CJK characters take 3, and emoji take 4.
  • JavaScript's .length counts UTF-16 units, which reports 2 for any emoji outside the basic plane. That is why a naive counter says an emoji is two characters.

If a database column is VARCHAR(255), check whether that limit is in characters or bytes — for non-English text they are very different numbers.

Where each count actually applies

  • Database columns — usually bytes in MySQL's older charsets, characters in modern ones.
  • SMS — 160 characters in GSM-7, but only 70 if the message contains any character requiring UCS-2.
  • Meta description — Google truncates by pixel width, not characters; roughly 155–160 characters is the practical guide.
  • Social posts — platforms differ on whether a URL or an emoji counts as one character or several.
  • LLM prompts — measured in tokens, not characters. Use the token counter for that.

How words, sentences and paragraphs are counted

Words are runs of non-whitespace, so well-known counts as one and a — b counts as three. Paragraphs are blocks separated by a blank line. Sentences are counted by terminal punctuation (., !, ?), which means abbreviations like e.g. inflate the count slightly — a limitation worth knowing rather than trusting blindly.

What people use it for

  • Staying inside a field limit for a form, a database column or an API parameter.
  • Writing a meta description or title tag to a target length.
  • Checking a social post before publishing it.
  • Measuring a translation against the source text's length.
  • Finding out how much data a text field will actually store in bytes.

Nothing is uploaded. This tool runs entirely in JavaScript in your browser. Your input is never sent to a server, never logged and never stored, and no account is required. Once the page has loaded you can go offline and it still works — open your browser's network tab and watch if you'd like to confirm it.

Frequently asked questions

Why does my emoji count as one character here but two elsewhere?

This tool counts Unicode code points, so an emoji is one. Many counters use JavaScript's .length, which counts UTF-16 units and reports 2 for emoji outside the basic multilingual plane. Neither is wrong; they measure different things.

What is the difference between characters and bytes?

Bytes is the UTF-8 encoded size: 1 byte for ASCII, 2 for most accented and Cyrillic letters, 3 for most CJK characters, 4 for emoji. A 255-character limit and a 255-byte limit are very different for non-English text.

How are words counted?

As runs of non-whitespace characters. A hyphenated word counts as one; a standalone dash counts as a word. This matches how most word counters behave.

Is the sentence count reliable?

Approximately. Sentences are detected by terminal punctuation, so abbreviations such as e.g. or Dr. inflate the count. Treat it as a guide rather than an exact figure.

Does it count tokens for an AI model?

No — tokens are not characters. Use the LLM token counter for that.

Tools that run where your code is

This page does its work in your browser because sending your data to a server to process it is a bad default. Catalase applies the same idea to AI coding: a free, open-source code editor that runs language models on your own machine through Ollama, with no account and no telemetry. Cloud models are there when you choose one, not by default.

Download Catalase freeWhat is Catalase?

Related tools

All 30 free developer tools →