What the character counter counts
Paste any text and the counter shows the numbers people look for when a form, a platform or an assignment sets a limit. Everything updates as you type, and nothing leaves your browser.
- Characters counts everything: letters, digits, punctuation, emoji, spaces, tabs and line breaks. The maxlength limit of web forms counts spaces too.
- Characters without spaces leaves out every space, tab and line break, for limits that do not count spaces.
- Words, sentences and paragraphs use the same rules as our word counter: "don’t" and "well-known" are one word each, and Mr. or e.g. do not end a sentence.
- Lines counts every line, empty ones included, the way a text editor numbers them.
- Letters, digits, punctuation and symbols and emoji break the characters down by kind.
For a word count with reading time, readability scores and keyword density, use the word counter. To check one social post against many networks at once, with feed preview cutoffs, use the post character counter.
Why emoji and accents can count more than once
A character on screen is not always one character to a computer. Unicode builds some characters from several pieces: a letter plus an accent mark, an emoji plus a skin tone, or several emoji glued together with an invisible joiner. Each piece is a code point. Programs then store code points as UTF-16 code units or UTF-8 bytes, and different software counts different things.
| Character | What it is | You see | Code points | UTF-16 units | UTF-8 bytes |
|---|---|---|---|---|---|
| a | Plain letter | 1 | 1 | 1 | 1 |
| é | Accented letter, one code point | 1 | 1 | 1 | 2 |
| é | e plus a separate accent mark | 1 | 2 | 2 | 3 |
| € | Euro sign | 1 | 1 | 1 | 3 |
| 中 | Chinese character | 1 | 1 | 1 | 3 |
| 😀 | Emoji | 1 | 1 | 2 | 4 |
| 👍🏽 | Emoji with skin tone | 1 | 2 | 4 | 8 |
| 🇺🇸 | Flag | 1 | 2 | 4 | 8 |
| 👩💻 | Two emoji joined into one | 1 | 3 | 5 | 11 |
The main count follows what you see, using the grapheme rules built into your browser. That is what a person means by "one character". JavaScript’s length counts UTF-16 code units, so a single emoji like 😀 counts as 2. The maxlength attribute of web forms counts the same units, so a field limited to 100 accepts only 50 emoji of that kind. The section "How computers count this text" shows all four numbers for your text, and lists hidden characters like no-break spaces and zero-width spaces that often sneak in when you copy from a web page or a document.
SMS character limit: 160, 153, 70 or 67
A single text message holds 140 bytes. With the GSM-7 alphabet, where each character takes 7 bits, that is 160 characters. GSM-7 covers English letters, digits, common punctuation and some accented letters such as é, ü and ñ. A few characters, like the euro sign, square and curly brackets, the backslash, the tilde and the vertical bar, come from an extension table and count as 2.
As soon as one character is outside GSM-7, the whole message is sent in Unicode (UCS-2), where each character takes 2 bytes, so only 70 fit. Emoji, Chinese characters and curly quotation marks do this. Curly quotes are easy to miss, because ’ and ' look almost the same. Longer texts are split into parts, and each part loses room to a header that tells the phone how to join them: 153 characters per part in GSM-7, 67 in Unicode.
| Encoding | One message | Per part of a longer text | 2 parts hold | 3 parts hold |
|---|---|---|---|---|
| GSM-7 | 160 | 153 | 306 | 459 |
| Unicode (UCS-2) | 70 | 67 | 134 | 201 |
The SMS panel counts the same way and lists the characters that forced Unicode, so you can swap a curly apostrophe for a straight one and save a whole message. The numbers follow the SMS standard as explained in Twilio’s SMS character limit guide; a phone or an SMS service can still use other settings.
Character limits by platform
Each limit below comes from the platform’s own documentation. Platforms do not all count the same way, and the tool follows each one where the documentation says how.
| Field | Limit | Source |
|---|---|---|
| X post | 280 | X developer docs |
| Threads post | 500 | Threads API docs |
| Bluesky post | 300 | Bluesky post lexicon |
| Instagram caption | 2,200 | Instagram API reference |
| LinkedIn post | 3,000 | LinkedIn Help |
| YouTube video title | 100 | YouTube Help |
| YouTube description | 5,000 | YouTube Help |
| Google Ads headline | 30 | Google Ads Help |
| Google Ads description | 90 | Google Ads Help |
| App Store app name | 30 | App Store Connect Help |
| App Store subtitle | 30 | App Store Connect Help |
| App Store promotional text | 170 | App Store Connect Help |
| App Store keywords | 100 bytes | App Store Connect Help |
| App Store description | 4,000 | App Store Connect Help |
| Google Play app name | 30 | Play Console Help |
| Google Play short description | 80 | Play Console Help |
| Google Play full description | 4,000 | Play Console Help |
A meta description and a title tag have no fixed limit. Google’s snippet documentation says there is no limit on the length of a meta description, and its title link documentation says the same for titles. Both are shortened in search results as needed to fit the device width.
Tips for staying under a limit
- Set your own limit in the Your limit box, in characters, characters without spaces, words or bytes. The bar fills as you type, and when you go over, Copy the part that fits copies the text up to the limit, cut between characters so no emoji breaks in half.
- Watch the bytes when a database column or an API counts bytes. In UTF-8, accented Latin letters, Greek, Cyrillic, Hebrew and Arabic take 2 bytes, Chinese, Japanese, Korean and most other scripts 3, and emoji 4 or more.
- Clean pasted text. A zero-width space or a byte order mark counts as a character but shows nothing. If the hidden characters list shows any, our find and replace tool can remove them.
How to use the character counter
- 1Type or paste your text into the box. The example text shows how emoji and accented letters are counted; press Clear to start fresh.
- 2Read characters with and without spaces, words and lines at the top, and the breakdown below.
- 3Enter your limit, or check the SMS and platform panels, then copy the counts or the text.
Frequently asked questions
Do spaces count as characters?
Yes. The main count includes every space, tab and line break, and so does the maxlength limit of a web form. "Without spaces" leaves all of them out. If a teacher or an editor gives you a limit and does not say which one, ask.
How many characters is an emoji?
One, as you see it, and that is the number this counter shows. Behind the scenes it is more: 😀 is 2 UTF-16 code units, the unit JavaScript and the HTML maxlength attribute use, and 4 bytes in UTF-8. X counts every emoji as 2, the Threads API counts emoji by their UTF-8 bytes, and in a text message one emoji switches the whole message to Unicode, which cuts the limit from 160 to 70.
How many characters fit in one text message?
160 when every character is in the GSM-7 alphabet that SMS uses, and 70 when even one character is not, such as an emoji, a curly apostrophe or a Chinese character. Longer texts are sent in parts of 153 or 67 characters, because each part carries a short header that puts the message back together. The SMS panel shows which characters forced Unicode.
Is there a character limit for a meta description or a title tag?
Google says there is no limit on how long a meta description or a title element can be. In search results it cuts both as needed to fit the width of the device. So there is no exact number to hit; put the important words first so they show even when the end is cut.
Why does another counter show a different number?
Most differences come from what counts as one character. Some tools count UTF-16 code units, the way JavaScript does, so every emoji counts 2 and a family emoji counts up to 11. Some count bytes. This counter shows characters as you see them in the main count and lists code points, code units and bytes below, so you can match any other tool.
Does it count characters in other languages?
Yes. Letters with accents, Cyrillic, Greek, Arabic, Hebrew, Chinese, Japanese and Korean are counted as you see them, including letters built from a base and a separate accent mark. Words in languages without spaces, like Chinese and Japanese, are found with the word rules built into your browser.
Is my text stored or uploaded?
No. Everything is counted in your browser and nothing is sent to a server. Copy link only shares your limit setting, never your text.