Character counter · Free · No sign-up
Character Counter
A character counter counts the letters, digits, spaces and symbols in a text as you type. This one counts what you see, with and without spaces, and also counts the way platforms do: UTF-16 units for web forms, bytes, X’s weighted 280 and text message parts, and it names what makes those counts differ.
The example text: 120 characters as seen, 121 for a web form, 132 bytes, 123 on X, and 2 text message parts.
Nothing typed yet. Your text is kept in this browser only.
- Characters
- 0
- No spaces
- 0
- Letters
- 0
- Digits
- 0
- Spaces
- 0
- Line breaks
- 0
- Emoji
- 0
- Words (by spaces)
- 0
Choose a platform, or type a limit and the unit it is counted in.
The same text, counted seven ways
| Measure | Count | Who counts this way |
|---|---|---|
| Characters you see | 0 | People, and most limits that say “characters” |
| Without spaces | 0 | Limits that say “characters without spaces” |
| UTF-16 units | 0 | A web form’s maxlength, JavaScript’s length |
| Code points | 0 | Python’s len(), MySQL’s CHAR_LENGTH() |
| UTF-8 bytes | 0 | File size, MySQL’s LENGTH(), YouTube descriptions |
| X weighted | 0 of 280 | Posts on X |
| Text message | 0 parts | SMS: GSM-7 or UCS-2, and parts |
On plain English letters, digits and spaces the counts agree; emoji, accents, East Asian text and symbols part them.
Counted in this browser. Your text is kept on this device so it survives a reload, and is never sent anywhere: Clear removes it.
Paste or type your text. Every count updates as you type, a platform’s limit is checked in the unit it uses, and nothing leaves your browser.
A character count is the number of letters, digits, spaces and symbols in a text, used to meet limits on posts, ads, messages and forms. Platforms differ on what one character is, mostly over emoji, accents, East Asian scripts and links, so the unit a limit uses matters.
- No sign-up
- Nothing uploaded
- Units stated
- Works offline
- X and SMS rules
Key facts
| Detail | Answer |
|---|---|
| Price | Free, no sign-up, nothing to install |
| A character is | What you see: a letter, digit, space, line break or emoji is one |
| Also counted | Without spaces, UTF-16 units, code points, UTF-8 bytes |
| X | 280 weighted: emoji and Chinese, Japanese and Korean 2, a link 23 |
| Text messages | 160 GSM-7 or 70 UCS-2; 153 or 67 a part |
| Limits built in | X, SMS, Google Ads, YouTube, Instagram, LinkedIn, UCAS, titles |
| Where text is kept | This browser only |
How to count the characters in a text
Put the text in, read the board, and check it against the limit in the right unit.
Put the text in
Paste or type into the box.
Read the board
Characters as you see them are at the top, without spaces under them, then X, SMS and bytes.
Choose the limit
Pick a platform under Check against, or type your own limit and the unit it is counted in.
Read the note
It says how many are left or how far over, in that unit.
Check the seven counts
The table shows the text in every unit, and the note under it names what makes them differ.
Fix what costs most
Swap a curly apostrophe for a straight one to get a text back to 160, or a long link counts 23 on X whatever its length.
Who uses a character counter
Anyone writing into a box with a limit.
Social media managers
Posts on X weighed as X weighs them, and captions for Instagram and LinkedIn.
Advertisers
Google Ads headlines of 30 and descriptions of 90, with East Asian characters counted 2.
Anyone sending texts
A message kept to one part, by finding the curly quote or emoji that cut it to 70.
SEO writers
Page titles and meta descriptions near the length Google shows.
Developers
A field’s maxlength, a database column in bytes or characters, and emoji tested against both.
Applicants
A UCAS personal statement to 4,000 characters, spaces and line breaks included.
What a character is: the same text counted seven ways
“Characters” sounds like one unit. It is at least five, and the place that checks a limit decides which it means. This counter’s main figure is the characters you see: a letter, a digit, a space, a line break or an emoji is one, however the computer stores it (Unicode calls these grapheme clusters). The other counts are the ones software uses underneath:
UTF-16 units are what a web form’s
maxlengthcounts, and what JavaScript’slengthreturns (MDN: maxlength “is measured in UTF-16 code units”). Most letters are 1; an emoji is 2 or more.Code points are Unicode’s numbered characters, the count Python’s
len()and MySQL’sCHAR_LENGTH()give. An accent typed as a separate mark is a code point of its own.UTF-8 bytes are storage: 1 for plain English, 2 for most accented letters, 3 for Chinese, Japanese and Korean, 4 or more for an emoji. File sizes, MySQL’s
LENGTH()and YouTube’s description limit count these.X and text messages have rules of their own, set out in the next two sections.
| Text | What it tests | You see | UTF-16 | Code points | Bytes | X | SMS |
|---|---|---|---|---|---|---|---|
A | A plain letter | 1 | 1 | 1 | 1 | 1 | 1 (GSM-7) |
é | é typed as one character | 1 | 1 | 1 | 2 | 1 | 1 (GSM-7) |
é | é typed as e plus an accent mark | 1 | 2 | 2 | 3 | 1 | 2 (UCS-2) |
👍 | An emoji | 1 | 2 | 1 | 4 | 2 | 2 (UCS-2) |
👍🏽 | An emoji with a skin tone | 1 | 4 | 2 | 8 | 2 | 4 (UCS-2) |
👨👩👧👦 | A family emoji: four people joined | 1 | 11 | 7 | 25 | 2 | 11 (UCS-2) |
🇬🇧 | A flag | 1 | 4 | 2 | 8 | 2 | 4 (UCS-2) |
東 | A Chinese character | 1 | 1 | 1 | 3 | 2 | 1 (UCS-2) |
한 | A Korean syllable | 1 | 1 | 1 | 3 | 2 | 1 (UCS-2) |
á | á, as in Spanish | 1 | 1 | 1 | 2 | 1 | 1 (UCS-2) |
€ | The euro sign | 1 | 1 | 1 | 3 | 2 | 2 (GSM-7) |
{ | A curly bracket | 1 | 1 | 1 | 1 | 1 | 2 (GSM-7) |
… | An ellipsis typed as one character | 1 | 1 | 1 | 3 | 2 | 1 (UCS-2) |
’ | A curly apostrophe | 1 | 1 | 1 | 3 | 1 | 1 (UCS-2) |
Why it matters. A family emoji is one character to you and 11 to a web form, so a bio box with a 160 maxlength can refuse a bio that a plain character counter says is 152. An é copied from a document that typed it as e plus an accent is one character on screen, two code points, and enough on its own to cut a text message from 160 characters to 70. When a limit is hard, check the count in the unit that limit is set in: choose it under Counted in and the tool counts down in that unit, and warns when a box counting like maxlength would refuse a text this counter passes.
How X counts to 280: weights, emoji and links
X publishes its counting rule in the configuration of twitter-text, its open-source library (version 3, the one in use): a post holds 280 weighted characters, and each character weighs 1 or 2. The text is first put in Unicode normal form C, so an accent typed as a separate mark merges with its letter and counts once.
| Characters | Weight | Examples |
|---|---|---|
| U+0000 to U+10FF | 1 | Latin, Greek, Cyrillic, Arabic, Hebrew, Devanagari and most other alphabets |
| U+2000 to U+200D | 1 | Typographic spaces and the zero-width joiner |
| U+2010 to U+201F | 1 | Hyphens, en and em dashes, curly quotes and apostrophes |
| U+2032 to U+2037 | 1 | Primes, as in 5′ 11″ |
| Any emoji | 2 | However it is built: a skin tone or a family joined with zero-width joiners is still 2 |
| A web address | 23 | Every link, long or short, because X shortens it |
| Everything else | 2 | Chinese, Japanese and Korean; the ellipsis …, the bullet •, the euro sign € and the trademark sign ™ |
Two results surprise people. A typed ellipsis costs 2 and three full stops cost 3, so the single character still saves one. And a post in Japanese holds 140 characters, not 280, because each weighs 2. A long link works the other way: a 90-character address costs 23, so X can accept a post that a plain counter puts over 280.
The tool finds a web address when it starts with http://, https:// or www., or ends in a common domain such as .com, .org or .co.uk. X’s own detector knows every domain, so for an unusual one trust the count in X’s compose box. Longer posts are a paid X feature; 280 is the standard limit.
Text messages: 160, 153, 70 and 67
A text message is not counted in characters at all, but in the space they take. The standard alphabet, GSM 03.38 (GSM-7), packs 160 characters into one message. It holds the English letters and digits, common punctuation, and some accented letters: é è ù ì ò à ä ö ü ñ Ä Ö Ü Ñ Å å Æ æ ß Ø ø Ç, along with £, ¥, §, ¡ and ¿. Nine more, ^ { } [ ] ~ \ | and €, sit in an extension table and count 2 each.
One character outside that alphabet changes the whole message to UCS-2, which holds only 70. The usual culprits are an emoji, a curly apostrophe or quote pasted from a word processor (’ “ ”), an en or em dash, a typed ellipsis, and letters such as á, í, ó and ú. Every Chinese, Arabic, Hindi or Cyrillic message is UCS-2. The tool names the characters that made your text UCS-2, so you can swap a curly apostrophe for a straight one and get 160 back.
| Parts | GSM-7 | UCS-2 |
|---|---|---|
| 1 | 160 | 70 |
| 2 | 306 | 134 |
| 3 | 459 | 201 |
| 4 | 612 | 268 |
| 5 | 765 | 335 |
Why a split message holds less. Past one message, the text is sent in parts of 153 (GSM-7) or 67 (UCS-2), because each part carries a short header telling the phone how to join them. Each part is usually billed as one message. The tool never splits an extension character, or an emoji’s two UTF-16 units, across two parts, as phones do not; at a boundary that can make one part a character shorter.
Some phones and networks support language shift tables (Spanish, Portuguese, Turkish and Indian languages among them) that add letters to GSM-7. Support varies, so the tool counts by the default alphabet, the case that reaches every phone.
Character limits, and the unit each is counted in
Choose one under Check against and the tool sets the limit and the unit together. Each is counted the way its owner says:
| Where | Limit | Counted in | Source |
|---|---|---|---|
| A post on X | 280 | Weighted characters: emoji, Chinese, Japanese and Korean 2, a link 23 | X developer documentation, twitter-text v3 |
| A text message | 160 or 70 | GSM-7 septets or UCS-2 units; 153 or 67 a part when split | GSM 03.38 |
| Google Ads headline | 30 | Characters; Chinese, Japanese and Korean count 2 | Google Ads Help, text ads |
| Google Ads description | 90 | As for headlines | Google Ads Help, text ads |
| YouTube title | 100 | Characters | YouTube Data API, videos |
| YouTube description | 5,000 | Bytes (UTF-8): an accented letter is 2, a Chinese character 3, an emoji 4 | YouTube Data API, videos |
| Instagram caption | 2,200 | Characters | Meta’s Instagram Platform documentation |
| LinkedIn post | 3,000 | Characters | LinkedIn Help |
| UCAS personal statement (UK, from 2026 entry) | 4,000 | Characters, spaces and line breaks included, across three answers | UCAS, via university guidance |
| Page title in Google | about 60 | No set limit: Google cuts by width on screen | Google Search Central |
| Meta description in Google | about 155 | No set limit: Google cuts by width on screen | Google Search Central |
When the rule is not stated, assume spaces and line breaks count, because nearly every limit includes them. If a box refuses text that the main count says fits, it is probably counting UTF-16 units: choose that unit and the tool shows the figure the box sees. Limits change; these were checked on 29 October 2026. For words rather than characters, use the word counter.
What this character counter does not do
The character counter counts. It does not stand in for the place that enforces the limit:
| It does | It does not |
|---|---|
| Count characters seven ways and say which places count each way | Know a limit a platform changes after 29 October 2026; the platform’s own box has the last word |
| Weigh a post as X’s published rule does | Detect every web address X does: unusual domains are counted as text |
| Work out GSM-7 or UCS-2 and the number of SMS parts | Apply the language shift tables some networks use, or say what a carrier charges |
| Give the length of a page title or description | Measure its width on screen, which is what Google cuts by |
| Keep your text in this browser so a reload does not lose it | Send it anywhere, or keep it anywhere but this browser |
This counter, a typical online counter, a word processor or the platform's box
Four ways to check a text against a character limit, and where each stops.
| This character counter | A typical online counter | A word processor | The platform’s own box | |
|---|---|---|---|---|
| Cost | Free, no sign-up | Free, often with ads or upsells | Part of the app | Free |
| With and without spaces | Yes | Usually | Yes | With only |
| Emoji counted | As seen, and as forms, X and SMS count them | One way, unstated | One way, unstated | Its own way |
| X weights and links | Yes, by X’s published rule | Rarely | No | X only |
| Text message parts | GSM-7 or UCS-2, with the cause named | Rarely | No | Some phones |
| Bytes | UTF-8 | Sometimes | No | No |
| Where your text goes | Nowhere: this browser only | Often a server | The app, or its cloud | The platform, when you post |
More writing tools
Every writing tool on the site runs in your browser, needs no sign-up, and sends nothing anywhere.
Counts & lengths3
Words, characters, pages and what changed in an edit, counted the way you need them.
Words per page calculator
Words to pages and back from the font, size, spacing, paper and margins, your own text or a document.
Open words per page calculator →Edit counter
Words kept, cut, added and moved between two drafts, and a Word file's tracked changes, counted in the browser.
Open edit counter →Word counter
Words, characters and sentences as you type, the count under other rules, sourced reading time, Flesch scores.
Open word counter →
All 4 writing tools, by category: Counts & lengths (4)
Frequently asked questions
Do spaces count as characters?
Yes, in nearly every limit that says characters: X, text messages, Google Ads, Instagram and UCAS all count spaces, and line breaks too. Only a limit that says characters without spaces leaves them out, which is why the counter shows both. Here a space is one character and so is a line break; a tab is one, and two spaces in a row are two.
Does an emoji count as one or two characters?
It depends on who counts. You see one, and this counter’s main figure counts one. X counts every emoji as 2, however it is built. A web form’s maxlength counts UTF-16 units: 2 for a thumbs-up, 4 with a skin tone, 11 for a family emoji. In bytes an emoji is 4 or more, and in a text message one emoji drops the whole message to 70 characters.
Why does X count my post differently from a character counter?
Because X weighs characters. A web address counts 23 however long it is, so a long link makes a post shorter on X. An emoji, a Chinese, Japanese or Korean character, and symbols such as the ellipsis and the euro sign count 2, which makes it longer. Choose X under Check against and the tool counts by X’s published weights.
Why is my text message sent as two messages?
One text holds 160 characters from the standard SMS alphabet, or only 70 if any character is outside it: an emoji, a curly apostrophe or quote pasted from a word processor, an en or em dash, or a letter such as á. Longer messages split into parts of 153 or 67 characters. The tool names the characters that pushed your text down to 70.
How many characters can a text message have?
160 in one message using the standard GSM alphabet, and 70 when any character is outside it. A longer message is split into parts that hold 153 or 67 each, because every part carries a short header that tells the phone how to join them. The characters ^ { } [ ] ~ \ | and € are in the standard alphabet but count 2 each.
Does a line break count as a character?
Yes, one here, as in most counters and on X. Two cautions. A web form sends a line break as two characters, a carriage return and a line feed, so a site that checks the length again on its server may count 2. And limits such as UCAS’s include line breaks, so a blank line between paragraphs uses characters too.
What is the difference between characters and bytes?
A character is a unit you see; a byte is a unit of storage. In UTF-8, the encoding of nearly every web page, a plain English letter is 1 byte, an accented letter such as é is 2, a Chinese character 3 and an emoji 4 or more. Limits set in bytes, such as YouTube’s 5,000 for a video description, fill faster in other languages.
Does the character counter work for non-English languages?
Yes. It counts any script by what you see, so a Hindi letter with its vowel sign counts as one, and each Chinese, Japanese or Korean character counts one. The other counts show where that changes: those East Asian characters are 3 bytes each and count 2 on X and in Google Ads, and almost any letter outside the Latin alphabet makes a text message UCS-2.
Is my text saved or uploaded?
It is saved in this browser’s storage on your device, so a reload or a closed tab does not lose it, and it is never uploaded: every count is made on your device. Clear deletes it. On a shared computer, clear the box when you finish, as you would close a document.
Related guides
Longer answers to the questions behind the numbers.
- Reference
Types of counters explained
Synchronous vs asynchronous, mod-N, ring and Johnson, industrial and PLC counters, plus mechanical and software counters.
- Build it
How to make a counter
Twenty lines gets you counting. Here is what to add after that, and why.
- Counting
Why word counts differ between tools
The same sentence is 26 words to one counter and 39 to another. Four counting rules side by side, and how to meet a hard limit whichever one a form uses.