Skip to content

Character counter with limits and byte size

Count characters with and without spaces against any limit, with a live progress ring, UTF-8 byte size and SMS segment counts.

  • Runs in your browser
  • Files are never uploaded
  • Free, no account

Counts update as you type. Nothing is uploaded — the page keeps working offline.

0of 280

280 characters left

Character limit
Counts
Every figure updates on each keystroke.
With spaces
0
Without spaces
0
Words
0
Lines
0
UTF-8 bytes
0
0 B
SMS segments
0
GSM-7 · 160 per part
Character breakdown
Useful when a field counts bytes, or when a stray symbol breaks an encoding.
Letters0 · 0.0%
Digits0 · 0.0%
Punctuation & symbols0 · 0.0%
Spaces & tabs0 · 0.0%
Other characters0 · 0.0%

UTF-8 bytes differ from characters whenever you use accents (2 bytes), most CJK characters (3 bytes) or emoji (4 bytes and often more than one code point). Database columns such as VARCHAR(255) usually count bytes, not characters.

How to use the character counter

  1. Type or paste your text. Counts update on every keystroke — there is no button to press.
  2. Pick the limit you are writing against, or choose Custom and enter your own number.
  3. Watch the ring: it fills as you approach the limit and turns red, with an explicit “over by N” message, as soon as you pass it.
  4. Decide whether spaces should count. Most platforms count them; a few internal systems do not.
  5. Check the byte figure if the text is going into a database column, a URL or an HTTP header.

Characters, code points and bytes are three different things

For plain English these three numbers are identical, which is why the difference only bites when something breaks. A character here means a UTF-16 code unit, the unit JavaScript, Java, .NET and most form validators count. A code point is one Unicode scalar — emoji outside the basic plane take two code units each. A byte is what UTF-8 storage actually consumes.

Text Characters (UTF-16) UTF-8 bytes Why
hello55Plain ASCII, one byte each
café45é is two bytes in UTF-8
日本語39Most CJK characters are three bytes
🎉24Outside the basic plane: a surrogate pair
👨‍👩‍👧818Three emoji joined by zero-width joiners

This matters in practice. A VARCHAR(255) column in MySQL with a utf8mb4 charset stores 255 characters but reserves up to 1,020 bytes; a Postgres varchar(255) counts characters; an HTTP header counts bytes. If a form keeps rejecting a bio that “fits”, the byte count is usually the reason.

Common character limits

Where Limit Notes
X / Twitter post280Links count as a fixed 23 characters
X / Twitter bio160
SMS (GSM-7)160153 per part once the message splits
SMS (UCS-2)70Triggered by one emoji or curly quote; 67 per part
Meta description≈ 155Google truncates by pixel width, not characters
Title tag≈ 60Roughly 580 pixels on desktop results
Instagram caption2,200Truncated in-feed after about 125
LinkedIn post3,000“See more” appears after about 210
YouTube description5,000First 157 shown in search
Google Ads headline30Per headline, three per ad

Why an emoji can triple your SMS bill

SMS was designed around a 7-bit alphabet called GSM 03.38, which holds 160 characters in a single message. A handful of characters — { } [ ] ~ ^ \ | and the euro sign — are “extended” and take two slots each. Anything outside that alphabet, including emoji, curly quotes copied from a word processor and most accented characters beyond the basic set, forces the whole message into 16-bit UCS-2 encoding, which holds just 70 characters per part. A 200-character message costs two segments in GSM-7 but three in UCS-2. The counter tells you which encoding your text triggers and how many units remain before the next segment.

Where a character counter earns its keep

  • Meta descriptions and title tags — write to the length that survives truncation instead of guessing.
  • Ad copy — Google and Meta both reject overlong headlines outright rather than trimming them.
  • Form and database limits — check a value before it is silently cut at 255.
  • Academic abstracts — journals frequently specify characters, not words.
  • Transactional SMS — every extra segment multiplies the send cost.

Private by construction

Counting happens in your browser. Nothing you type is uploaded, stored or logged, which means you can safely paste an embargoed press release, a password hint or a client’s draft without it leaving the machine you are sitting at.

Questions

Do spaces count as characters?

Almost always, yes. Twitter/X, SMS gateways and HTML meta tags all count spaces. This tool shows both figures side by side and lets you decide whether spaces should count towards the limit you set.

Why is the byte count higher than the character count?

UTF-8 uses one byte for plain ASCII, two for most accented Latin and Greek letters, three for most CJK characters and four for emoji. Database columns and HTTP headers usually measure bytes, so a 200-character bio can easily exceed a 255-byte column.

How are SMS segments worked out?

If every character fits the GSM-7 alphabet, a single message holds 160 characters and each part of a longer message holds 153. One character outside that alphabet — a curly quote or an emoji — forces UCS-2 encoding, which drops the limits to 70 and 67.

How long should a meta description be?

Google truncates around 155–160 characters on desktop and closer to 120 on mobile, so aim for 150 with the important words first. The tool marks the 155-character line for you.