Menu

Character Counter

Paste or type your text to count characters with and without spaces as you type, and see how much room is left on X, in an SMS, a meta description, a Google ad or a UCAS personal statement.

0 words 0 characters 0 lines

Characters
0
Without spaces
0
Words
0

Continue with this text: Word counterSplit into postsRemove extra spaces

Your text stays in your browser: nothing is uploaded or stored on a server.

How to use the character counter

  1. Type or paste your text into the box, or use Open file for a plain-text file (.txt, .csv, .md and similar). Example loads a sample post.
  2. Read the panel: Characters, Without spaces, Words, Sentences, Lines, Bytes (UTF-8) and SMS update as you type.
  3. Under Limits to show, pick All platforms, Social media, SEO and ads or None. Each row shows how many characters are used, the limit, and how many are left. A red bar and a minus sign mean you are over.
  4. For a limit that is not in the table, such as a form field or a job application, enter it in Your own limit (optional). A bar appears with “characters left” or “characters over”.

The sample post has 144 characters and 121 without spaces. It fits an Instagram bio with 6 to spare but is 44 characters over a YouTube title, and because of its 📱 emoji it needs 3 SMS messages instead of 1.

What counts as one character

The main count is of characters as a reader sees them, which Unicode calls grapheme clusters. That matters for emoji and accents, because many of them are built from several code points behind the scenes. Code that uses JavaScript’s length counts UTF-16 code units instead, so 👍 comes out as 2. The counter avoids that.

Text Characters UTF-16 units UTF-8 bytes X weight
Hello world 11 11 11 11
café (one é) 4 4 5 4
café (e + accent mark) 4 5 6 4
👍 1 2 4 2
👍🏽 (with skin tone) 1 4 8 2
👨‍👩‍👧‍👦 (family) 1 11 25 2
🇺🇸 (flag) 1 4 8 2
東京 2 2 6 4

Other rules:

  • Spaces, tabs and line breaks count in Characters. Without spaces drops all of them, so two spaces is 15 characters and 9 without spaces. A Windows line break (CR + LF) counts as one character.
  • Punctuation, digits and symbols count one each: Hello, world! is 13 characters.
  • Invisible characters such as zero-width spaces count even though you cannot see them. If a count looks too high, run the text through remove invisible characters.
  • Lines are counted as the text has them; a final line break does not start a new line.
  • Bytes (UTF-8) is what databases and many APIs measure: plain English letters take 1 byte, accented letters 2, Chinese and Japanese characters 3 and most emoji 4.

How each platform counts

Platforms do not all count the same way, so each row of the limits table uses that platform’s own rule:

Row How it is counted
X (Twitter) post 280 weighted characters. Most Latin text counts 1, emoji and Chinese, Japanese or Korean characters count 2, and every link counts 23 however long it is.
Google Ads headline and description 30 and 90 characters. Double-width characters (Chinese, Japanese, Korean) count 2.
Mastodon post 500 by default. Links count 23 and @user@server counts as @user. Servers can change the limit.
TikTok caption (API) 2,200 UTF-16 units, so most emoji count 2 here.
SMS 160 GSM-7 characters, or 70 when any character needs Unicode.
SEO title and meta description 60 and 160 characters, marked “guide”: Google sets no limit and shortens them to fit the screen.
Everything else Characters as you see them, the same as the main count.

Two examples from the counter: Read more at https://example.com/a-very-long-path/that/keeps/going is 66 characters but only 36 on X, because the link counts 23. 日本語のテキスト is 8 characters but 16 on X and 16 of the 30 allowed in a Google Ads headline.

The Social media view shows X, Instagram, LinkedIn, YouTube, TikTok, Pinterest, Threads, Bluesky and Mastodon. SEO and ads shows the Google Ads, title tag and meta description rows. SMS and the UCAS personal statement appear only under All platforms. Limits change; the character limits cheat sheet lists each one with its source.

SMS: why one emoji can triple the cost

An SMS uses the GSM-7 alphabet when every character is in it: 160 characters fit in one message and 153 in each part of a longer one. Any other character, such as an emoji, a curly apostrophe or a Chinese character, switches the whole message to UCS-2, where one message holds 70 units and each part 67. Most emoji take 2 of those units.

Text Encoding Units Messages
160 × a GSM-7 160 1
161 × a GSM-7 161 2
307 × a GSM-7 307 3
70 characters ending in ’ UCS-2 70 1
71 characters ending in ’ UCS-2 71 2
{price} €5 GSM-7 13 1

The last row shows the GSM extension characters ^ { } \ [ ] ~ | and €: each costs 2. Text that is not GSM-7 shows a note under the panel listing the characters responsible, so you can swap ’ for ' or drop the emoji. Some SMS providers replace curly quotes automatically before sending; this counter reports the text exactly as written. To break a long message into parts, use the text splitter.

When people use it

  • Social posts and ads. Checking an X post, a LinkedIn update or three Google Ads headlines before pasting them into the platform, where an error appears only after you hit the limit.
  • Search snippets. Drafting a title tag and meta description so the important words come before Google cuts them off.
  • Applications. The UCAS personal statement allows 4,000 characters in total including spaces, with at least 350 per answer, so paste all three answers together for the total. Essays with a word limit belong in the word counter.
  • Database fields and forms. A VARCHAR column or an API field that counts bytes may reject text that looks short enough; the Bytes (UTF-8) figure shows the real size.
  • Cleaning before counting. Text pasted from a PDF or a web page often carries double spaces and stray line breaks. Remove extra spaces first if they are not meant to be there.

Questions

Does the character count include spaces?

The main Characters figure includes every space, tab and line break, which is how X, Instagram, LinkedIn, SMS and UCAS count. Without spaces leaves out all whitespace, for the rare form or assignment that asks for that number.

Why does an emoji count as 1 here but 2 on X?

This counter shows characters as you see them, so 👍🏽 is one. X weighs every emoji as 2 whatever it is made of, so the X row in the limits table counts it as 2. In an SMS the same emoji takes 4 of the 70 Unicode units.

Is a letter counter the same as a character counter?

Not quite. A character count includes spaces, digits, punctuation and emoji. To count letters only, or how often each letter appears, use the letter frequency counter with Letters only ticked.

How many characters is a 160-character SMS if I add an emoji?

One emoji switches the whole message to Unicode (UCS-2), where a single message holds 70 units instead of 160. A 100-character message with one emoji is sent as two segments. The SMS figure shows the number of messages and the encoding.

Why is my count different from another counter or an app?

Counters disagree mainly on emoji, accents and links. A tool built on JavaScript's length counts 👍 as 2 and a family emoji as 11; this one counts each as 1. Platforms such as X and Google Ads also apply their own weights, which is why the limits table shows each one in that platform's own unit.

Is my text uploaded?

No. All counting runs in your browser. The text is kept only in this tab so it carries over to another tool, and it disappears when you close the tab.

How many characters should a meta description have?

Google sets no limit and shortens snippets to fit the screen, so aim for about 150-160 characters with the key point first. The limits table marks 60 for titles and 160 for descriptions as guidance, not rules.