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
- 01Enter the maximum character limit you need to respect, such as 280.
- 02Type or paste your text into the input area.
- 03Check the remaining or over-limit count in the stat grid.
- 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.