Word Counter

Character counter

Type or paste, pick the limit you are writing against, and the remaining count updates as you go. Characters are counted as Unicode code points, so an emoji counts as one.

Everything is counted inside this browser tab. Nothing is uploaded and nothing is stored — close the tab and your text is gone.

How characters are counted here

Everything visible counts, and so does everything invisible: spaces, tabs and line breaks are characters. The second figure strips all of those out, which is the number a form wants when it says "characters excluding spaces". A line break entered in the box counts as one character here, though the same break becomes two — a carriage return and a line feed — when a browser submits it inside a form, which is one reason a long message can be accepted here and refused there.

A character on this page means one Unicode code point. Most systems agree with that for plain English text and start to disagree as soon as an emoji, an accented letter or a non-Latin script appears, because they measure storage units instead:

Text Characters here UTF-16 units UTF-8 bytes
Hello555
café445
Hello 🙂7810
👍🏽248

The last row is the awkward one. A thumbs-up with a skin tone is two code points — the gesture and the tone modifier — drawn as a single glyph, so it looks like one character and counts as two here. Family emoji joined by zero-width joiners reach seven code points for one picture.

The limits in the dropdown are the published caps: 280 for an X post, 160 for a single SMS, 60 for a meta title, 160 for a meta description and 220 for a LinkedIn headline. Each is measured against the plain character count above — the questions below explain where that is exact and where it only approximates.

Questions people ask

Why does X count my post differently?

X weights its 280 by character range rather than counting them flat. Latin, Greek, Cyrillic and most European text counts one each, while Chinese, Japanese, Korean, Arabic and Hebrew count two, which is why a Japanese post hits the wall at about 140 visible characters. Emoji count two as well. Links are the other surprise: every URL is replaced by a fixed 23-character allowance no matter how long or short it is, so a 90-character tracking link costs 23 and a five-character domain also costs 23. Use the count here as a close guide for ordinary English posts, and expect it to read low if your post is emoji-heavy or in a non-Latin script.

Why does one emoji cut an SMS from 160 to 70 characters?

A single SMS carries 140 bytes. If every character belongs to the GSM-7 alphabet — basic Latin letters, digits, common punctuation — each one packs into seven bits and 160 fit. One character outside that alphabet forces the whole message into UCS-2, where every character takes sixteen bits, and the segment drops to 70. An emoji does it, but so does a curly apostrophe inserted by autocorrect, an em dash, or an accented name. Longer messages are split into concatenated segments with a small header, which costs a little more: 153 characters per segment in GSM-7 and 67 in UCS-2. Networks charge per segment, so a stray smart quote can genuinely double a bulk send.

How long should a meta title and description be?

Google truncates by pixel width, not character count — roughly 580 to 600 pixels for a title and about 920 for a description on desktop, less on mobile. The familiar 60 and 155 to 160 character rules of thumb are simply what those widths work out to in an average mix of letters. A title full of capitals or wide letters such as W and M is cut earlier; one full of i and l survives longer. Write the part that matters in the first 50 characters of the title and the first 120 of the description, then treat anything past that as a bonus — Google rewrites descriptions for many queries anyway.

Does a VARCHAR(255) column hold 255 characters?

It depends on the database and the encoding. In MySQL with utf8mb4, VARCHAR(255) means 255 characters and can occupy up to 1,020 bytes, which matters because index prefixes and row sizes are limited in bytes — the old 767-byte index limit is why so many schemas settled on VARCHAR(191). PostgreSQL counts characters too. Oracle's VARCHAR2(255) defaults to bytes unless the column is declared with CHAR semantics, so a few emoji can overflow a field that looks half empty. If you are validating user input against a column, count the bytes the encoding produces, not the characters shown here.

Are spaces and line breaks included in the count?

Yes. The main figure counts spaces, tabs and line breaks like any other character, because every limit that matters counts them too — a space in a tweet or an SMS is charged for. The "characters without spaces" figure removes all whitespace, including the line breaks between paragraphs, and is the one to use for the school and journal briefs that ask for it. Watch out for text pasted from a word processor: non-breaking spaces and figure spaces look identical to ordinary spaces on screen and are counted as characters, which is often where an unexplained extra ten characters comes from.

Why does another tool say my emoji is two characters?

Because it is counting UTF-16 units rather than code points. JavaScript, Java and C# store text as UTF-16, where anything outside the first 65,536 code points — every emoji, many rarer CJK characters, most historic scripts — is stored as a surrogate pair and reported as two by a naive length check. Counting by grapheme cluster, which is what a person means by "character", gives a third answer again: one for a skin-toned thumbs-up, one for a flag. This page counts code points because that is the middle ground and the number most APIs document. If your target system is strict, test it with the exact string.