Skip to content

Character counter

Paste or type your text to count characters with and without spaces, and see how each app counts them.

0 characters0 without spaces0 linesSaved in this browser
  • 0Characters
  • 0Without spaces
  • 0Letters
  • 0Digits
  • 0Punctuation
  • 0Spaces and breaks
  • 0Emoji
  • 0Words
  • 0Code points
  • 0UTF-16 units
  • 0UTF-8 bytes
Limits, counted the way each app counts

    Checked November 2026 in X's counting rules, the Bluesky post format, Instagram and TikTok developer docs, YouTube Help, LinkedIn Help and Discord Support. Google sets no fixed limit and cuts by width. Instagram, YouTube, LinkedIn and Discord do not say how they count emoji, so those meters use the characters you see. Leave a few spare if your text has emoji or styled letters.

    Characters that cost extra
    Show the cost for

    Type some text to see which characters cost extra.

      Character frequency
      Most used characters
      CharacterNameCountShare
      Type some text to see the most used characters
      Your text is saved in this browser and never uploaded. Counting words, sentences and reading time? Use the word counter.
      Advertisement
      Letter tiles in a row with small number tags and a hand tally counter

      Last checked by the TextEditor.com team

      What counts as one character?

      Ask three programs how long "Zoë 👍🏽" is and you can get three different answers. Each one follows its own rule. A person sees five characters: Z, o, ë, a space and a thumbs up. The computer stores more than that.

      Unicode gives every character a number, called a code point. The thumbs up with a skin tone is two code points: the hand, then the color. Many apps keep text in UTF-16, where a common letter takes one unit and most emoji take two. Files and web pages use UTF-8, where one character takes 1 to 4 bytes.

      The big number in the tool is what you see. Unicode calls it a grapheme cluster. The tiles show the other counts, so you can match the number a form or an app is using.

      Every character of your text, counted five ways
      You seeCode pointsUTF-16 unitsUTF-8 bytesX countsIn an SMS
      Z11111
      o11111
      ë1121UCS-2
      ␣11111
      👍🏽2482UCS-2
      ␣11111
      🇭🇺2482UCS-2
      ␣11111
      111111
      €11322
      10 in all12162713UCS-2, 16 of 70

      With spaces or without?

      Almost every limit counts spaces. X, Instagram, Bluesky and text messages all do. Microsoft Word shows both numbers, and some school tasks ask for the count without spaces.

      A space is not only the space bar. Tabs, line breaks and the no-break space are spaces too, and the "Without spaces" tile leaves all of them out. A line break counts as one character here. A Windows file stores it as two, a carriage return plus a line feed, so a web form that checks the length on its server may count each break twice.

      One text, four honest counts
      • 23 with spaces and line breaks
      • 22 with spaces, line breaks left out
      • 18 without any spaces or line breaks
      • 24 with each line break counted as two, like a Windows file

      Why an emoji can count as 2

      UTF-16 was made when 65,536 numbers looked like enough for every character on Earth. Emoji arrived later and got numbers above that, so UTF-16 stores each of them as a pair of units. Code that asks for the length of a text in JavaScript or Java gets 2 for 😀.

      Some emoji are built from parts. A skin tone is a second code point. A flag is two regional letters, so 🇭🇺 is H plus U. A family is four people glued together by an invisible joiner. You see one character, but it is 7 code points, 11 UTF-16 units and 25 bytes.

      EmojiYou seeCode pointsUTF-16 unitsUTF-8 bytesX counts
      😀11242
      👍🏽12482
      🇭🇺12482
      ❤️12262
      1️⃣13372
      👨‍👩‍👧‍👦1711252

      Styled letters act the same way. The bold 𝐁 from a fancy text generator is one letter you see but two UTF-16 units, so an app that counts units fits only half as many of them. Accents can hide a cost too: é typed as an e plus a separate accent mark is one character you see and two code points.

      Text messages: 160, 153, 70 or 67

      A long text message on a phone split into three chat bubbles, each with a small part number tag
      A long text goes out in parts. Each part keeps a few bytes to tell the phone how to join them.

      A text message carries 140 bytes. Phones pack plain text into 7 bits per character, so 160 characters fit. The 7 bit set is the GSM 03.38 alphabet. It has the English letters, digits, common punctuation, some Greek capitals and a few accented letters such as é, è, ü, ñ and à.

      Nine characters sit in an extension table and take two places each: ^ { } [ ] ~ \ | and €. Three euro signs use 6 of the 160.

      One character outside the set switches the whole message to UCS-2, with 2 bytes per character. Then only 70 fit. The usual reasons are curly quotes and apostrophes, long dashes, the single character ellipsis, accented letters such as á, ç or ë, and emoji. Word processors and phone keyboards often type curly quotes for you, so a message can switch without you noticing.

      A longer message is sent in parts. Each part gives up 6 bytes to a header that tells the phone how to join them, so a part holds 153 plain characters, or 67 in UCS-2. An emoji or a two place character is never cut in half, so a part can hold one less. Many senders pay for each part.

      How your message is split

      UCS-2, 1 part: 66 of 70 used. Forced by ’ (curly apostrophe). With plain punctuation it would use 66 of 160.

      1. Part 1, 66 of 70Running 10 min late, sorry! Start without me. I’ll bring the cake.
      Advertisement

      How X counts a post

      X does not count what you see. Its counting rules give each character a weight. Latin, Greek, Cyrillic, Arabic, Hebrew, Hindi and Thai letters weigh 1, and so do digits and common punctuation. Chinese, Japanese and Korean characters weigh 2, and so does every emoji, however many parts it has. The limit is 280, so a post in Japanese holds about 140 characters.

      Every link counts as 23, because X wraps it in a short t.co link. A short web address and a very long one cost the same. The euro sign weighs 2, since it sits outside the ranges that weigh 1. X also joins an e and a separate accent mark into é before it counts, so that pair costs only 1.

      X Premium raises the limit to 25,000 for the writer. The @names that X adds at the start of a reply do not count. Names you type yourself do.

      Character limits by platform

      We checked each limit in the app's own help pages or developer docs in November 2026. Apps change these numbers, so check the date in the Limits panel before a big launch.

      WhereLimitHow it is counted
      X post280, or 25,000 with X PremiumWeights: most emoji and Chinese, Japanese or Korean characters count 2, each link 23
      Bluesky post300Characters you see, and also no more than 3,000 bytes
      Instagram caption2,200Not published
      Instagram bio150Not published
      TikTok caption from a posting app2,200UTF-16 units, so most emoji count 2
      YouTube title100Not published
      YouTube description5,000Not published
      LinkedIn post3,000Not published
      Discord message2,000, or 4,000 with NitroNot published
      Text message160 plain, 70 with any special character153 or 67 per part when it is split
      Google titleNo fixed limitCut to fit the screen. Many sites aim for 50 to 60.
      Google meta descriptionNo fixed limitCut to fit the screen. Many sites aim for about 155.

      Where an app does not say how it counts emoji, the meters use the characters you see. If your text has emoji or styled letters, leave a few characters spare. Need a word or emoji many times, sized to fit one message? The text repeater sets the count for you.

      What "length" means in code, Word and Google Docs

      WhereWhat it counts👍🏽é as e + accent
      s.length in JavaScriptUTF-16 units42
      s.length() in JavaUTF-16 units42
      len(s) in PythonCode points22
      mb_strlen($s) in PHPCode points22
      strlen($s) in PHPUTF-8 bytes83
      This pageCharacters you see11

      In Microsoft Word, open Review, then Word Count, or press Ctrl+Shift+G. It shows characters with and without spaces. In Google Docs, open Tools, then Word count, or press Ctrl+Shift+C.

      For words, sentences and reading time, use the word counter. To find characters you cannot see, such as a zero width space that adds to your count, use the invisible character page.

      Frequently asked questions

      Do spaces count as characters?

      Yes, in almost every limit. X, Instagram, Bluesky and text messages count spaces and line breaks. The "Without spaces" tile shows the count with all spaces, tabs and line breaks left out.

      Why does another counter show a different number?

      It counts something else. Many tools count UTF-16 units, so each emoji and each styled letter counts as 2. Some count a line break as 2. Here, Characters is what you see, UTF-16 units is what most code counts, and UTF-8 bytes is the size of the file.

      Why does my emoji count as 2 characters?

      Most emoji have Unicode numbers above 65,535, so UTF-16 stores each one as two units, and apps that count units see 2. X counts every emoji as 2 by its own rule, even a family emoji made of seven parts.

      How many characters fit in one text message?

      160 if every character is in the plain GSM alphabet, or 70 if even one is not. Longer messages go in parts of 153 or 67. Paste your message to see which characters push it down to 70, then swap them for plain ones with one click.

      How many characters is 100 words?

      About 500 to 600 with spaces, for English. An average English word has 4 to 5 letters, plus a space and some punctuation. Other languages differ: German words run longer, and Chinese uses 1 or 2 characters for most words.

      Is my text uploaded?

      No. The counting happens in your browser. The text is saved in this browser only, so it is still here when you come back, and we never see it.

      • Word counterCount words, sentences and paragraphs as you type.
      • Readability checkerCheck the reading grade level of your text.
      • Invisible characterCopy an invisible character or blank space for empty names and messages.
      • Case converterPaste text and change it to UPPERCASE, lowercase, Sentence case or Title Case in one click.
      • Text cleanerPaste messy text and clean it in one click.
      • Small textTurn your text into tiny letters to copy and paste.

      ↑ ↓ to choose, Enter to open, Esc to close