Skip to content
ToolzKit

Text

Character Counter

Count characters, grapheme clusters and UTF-8 bytes with a customizable limit tracker.

Text

Characters (UTF-16)
0
Graphemes
0
UTF-8 bytes
0
Remaining
280

Type or paste text above to see character and byte counts.

About the Character Counter

Character Counter is built for anyone writing against a strict limit — tweets, SMS messages, meta descriptions or form fields. It reports raw UTF-16 code unit counts, human-perceived grapheme clusters (so emoji and accented characters count correctly), and the UTF-8 byte size that many backend systems actually enforce.

How to use it

  1. 01Enter the maximum character limit you need to respect, such as 280.
  2. 02Type or paste your text into the input area.
  3. 03Check the remaining or over-limit count in the stat grid.
  4. 04Review the grapheme and byte counts if your platform measures length differently than raw characters.

Features

  • Live character, grapheme and UTF-8 byte counts
  • Configurable character limit with remaining/over indicator
  • Uses Intl.Segmenter for accurate grapheme counting where supported
  • Falls back gracefully to Array.from splitting in older browsers

Practical examples

Social media post

Set the limit to 280 to check a post fits within a platform's character cap.

SMS byte budget

Check UTF-8 byte size when a text message gateway bills by byte rather than character.

Limitations

  • Grapheme counting depends on Intl.Segmenter browser support; very old browsers use a simpler approximation.
  • Byte size reflects UTF-8 encoding only, not other encodings like UTF-16 or Shift-JIS.

Privacy

Text is measured locally in your browser and is never transmitted anywhere.

Read the full privacy policy for how the site as a whole handles data.

Frequently asked questions

Why do emoji count as one character sometimes and two other times?

Raw character counts split some emoji into multiple UTF-16 code units, while the grapheme count treats them as a single visible character.

What happens if I leave the limit blank?

The remaining/over-limit stat treats a blank or zero limit as zero, so it will show as over limit for any text.

Is UTF-8 byte size the same as character count?

No, characters outside the basic ASCII range often take two or more bytes in UTF-8.