Developer Tools

Character Counter

Count characters, words, sentences, lines, and bytes instantly. Set a character target, track platform limits for Twitter, SMS, Instagram, LinkedIn, and SEO tags. 100% private.

Last updated

Live Count
Character Target
Platform Limits
Byte Size (UTF-8)
Our networkdiscount5Fresh deals. Five at a time.Price drops and coupon codes, ending soonest first.See today’s deals
Chr
Character Counter
Live · Platform limits · Byte size · Target mode
0
Characters
0
No Spaces
0
Words
0
Sentences
0
Paragraphs
0
Lines
0
Spaces
0
Bytes (UTF-8)
Target
Platform Character Limits
X (weighted)0 / 280
SMS (GSM-7)0 / 160
Instagram0 / 2,200
LinkedIn Post0 / 3,000
Meta Description0 / 160
Page Title (SEO)0 / 60
YouTube Title0 / 100
Email Subject0 / 78
UTF-8: 0 B UTF-16: 0 B ASCII chars: 0 Non-ASCII: 0 Emoji count: 0

Why Character Count Matters

A character counter counts every letter, digit, space, punctuation mark and line break you type: "Hello, world!" is 13 characters, or 12 without the space. This tool counts what you see, so an emoji with a skin tone counts once, and it also shows words, lines, UTF-8 bytes and how your text measures against X, SMS and SEO limits. Your text stays in your browser.

Character limits exist everywhere in digital writing. Twitter and X allow 280 characters per post. SMS text messages are 160 characters per segment. Meta descriptions should be under 160 characters for optimal SEO display. Instagram captions support up to 2,200 characters. LinkedIn posts cap at 3,000. Knowing your character count in real time prevents truncation and keeps your message within platform limits.

For developers and programmers, character counting is essential when working with database fields, API payloads, and string validation. VARCHAR fields in SQL have strict character limits. Password fields often enforce minimum and maximum lengths. This tool counts both with and without spaces, which matters for different use cases.

Social Media Limits
Twitter/X: 280 chars. Instagram caption: 2,200. LinkedIn post: 3,000. Facebook post: 63,206. YouTube title: 100. YouTube description: 5,000.
SEO Character Limits
Title tag: 50-60 chars. Meta description: 150-160 chars. H1 tag: 20-70 chars. URL slug: under 75 chars. Alt text: under 125 chars.
Reading Time
The average adult reads about 238 words per minute silently and speaks about 130 words per minute. The Word Counter turns your word count into both estimates.
Word Count for Writing
Blog posts: 1,500-2,500 words for SEO. Short story: 1,000-7,500 words. Novel: 80,000-100,000 words. Academic essay: typically 1,000-5,000 words depending on level.

How This Counter Counts Characters

Computers store text as code points and bytes, but people count what they see. The counter follows the Unicode rules for user-perceived characters (grapheme clusters), so a letter with an accent or a composed emoji counts as one, even when it is built from several code points. Spaces, tabs and line breaks all count as characters. "No Spaces" removes every kind of whitespace, including line breaks.

TextCharacters hereJavaScript lengthCode pointsUTF-8 bytesX weighted
café (one é)44454
café (e + combining accent)45564
👍 thumbs up12142
👍🏽 with skin tone14282
👨‍👩‍👧‍👦 family1117252
🇺🇸 US flag14282
❤️ red heart12262
日本 (Japanese)22264

"JavaScript length" is what text.length returns, the number of UTF-16 code units. It is the number many web forms and older counters use, which is why a single emoji can eat two or more characters of a form limit. The UTF-16 figure in the byte row above is that number times 2.

Lines, words and the rest

  • Lines is the number of line breaks plus one, and 0 for an empty box. A wrapped long line is still one line.
  • Words are runs of characters between spaces, tabs or line breaks, so "well-being" and "don't" are one word each. Chinese and Japanese text without spaces counts as one word per run.
  • Sentences are counted from . ! and ? marks, so abbreviations like "Dr." add one. Any text without end punctuation counts as 1 sentence.
  • Paragraphs are blocks separated by a blank line.

Platform Limits and How Each One Counts

A limit is only useful if you count the way the platform does. The bars above use the method in the second column.

WhereLimitHow it is counted
X (Twitter) post280Weighted: most Latin text 1, CJK characters and each emoji 2, every link 23. Premium accounts can post longer text.
SMS, GSM-7160 (153 per part)Plain Latin letters, digits and common symbols. ^ { } [ ] ~ | \ and € take 2 each.
SMS, UCS-270 (67 per part)Used as soon as one character is outside GSM-7, such as an emoji or a curly quote. Counts UTF-16 units.
Instagram caption2,200Characters; up to 5 hashtags per post since December 2025.
LinkedIn post3,000Characters.
YouTube title100Characters; descriptions allow 5,000.
Page title (SEO)About 50 to 60Guidance only. Google cuts titles by pixel width (roughly 600 px on desktop), not by a character count.
Meta descriptionAbout 150 to 160Guidance only. Google has no fixed limit and trims snippets to fit the screen; phones show less.
Email subject78 per lineRFC 5322 recommends 78 characters per header line. What people actually see depends on the mail app.

The X count here follows the published rules of X's open-source counting library. Links written without http:// or https:// are counted as normal text here, while X may still shorten them to 23, so treat a result within a few characters of 280 as a close call.

SMS Segments: Why One Emoji Triples the Cost

A message longer than one SMS is split into parts, and each part loses a few characters to a header that lets the phone stitch them back together. Carriers and SMS APIs usually bill per part.

PartsGSM-7 charactersUCS-2 characters
1up to 160up to 70
2161 to 30671 to 134
3307 to 459135 to 201
4460 to 612202 to 268

Worked example. A 159-character reminder in plain English fits in one GSM-7 part. Add a single 👍 and the whole message switches to UCS-2. The emoji takes 2 UTF-16 units, so the text is now 161 units, and 161 divided by 67 per part rounds up to 3 parts. Replacing curly quotes (‘ ’ “ ”) with straight ones often has the same effect in reverse.

Common Counting Mistakes

  • Trusting text.length for limits. If your form or database checks characters, decide whether it means code units, code points or visible characters, and test with an emoji.
  • Confusing characters with bytes. MySQL VARCHAR(255) holds 255 characters, but with the utf8mb4 character set each one can take up to 4 bytes. The older utf8 (utf8mb3) set cannot store emoji at all.
  • Forgetting line breaks. Each line break is a character. A file saved with Windows line endings uses two bytes (CR LF) per break, while a browser text box stores one.
  • Copying invisible characters. Text pasted from documents can carry non-breaking spaces or zero-width spaces. A zero-width space counts as a character but is not whitespace, so two words joined by one count as a single word.
Method and sources. Characters are counted as extended grapheme clusters (Unicode Standard Annex #29) using the browser's Intl.Segmenter; bytes use TextEncoder (UTF-8). X weighting follows the configuration published in X's open-source twitter-text library (version 3). SMS encoding and segment sizes follow 3GPP TS 23.038 (GSM 7-bit default alphabet) and TS 23.040. Email line length: IETF RFC 5322. Title and snippet guidance: Google Search Central documentation on title links and snippets. Every value in the tables was computed with the same code the counter runs. Everything happens in your browser: the text you type is not sent anywhere.

Character Counter Guide

A character is a single unit of text as a human reads it: a letter, digit, space, or symbol. A byte is a unit of computer storage (8 bits). In ASCII, one character = one byte. In UTF-8 (the universal web standard), it depends on the character: standard ASCII letters (A-Z, 0 to 9) = 1 byte each. Latin letters with accents (é, ü, ñ) = 2 bytes. Most characters in Chinese, Japanese, Korean = 3 bytes. Emoji = 4 bytes each. This matters for database column limits (MySQL VARCHAR(255) holds 255 characters, but with utf8mb4 each can take up to 4 bytes), API payload limits, and storage costs. Ten simple emoji are 40 bytes in UTF-8 and count as 20 toward the 280 limit on X, because X weights each emoji as 2.

Twitter uses its own character counting algorithm, not raw UTF-8 bytes. Key rules: standard alphanumeric characters = 1 each. Most Latin characters with diacritics = 1 each. CJK (Chinese, Japanese, Korean) characters = 2 each in Twitter's weighted count. Emoji = 2 each (Twitter uses a special weighted count). URLs are always counted as 23 characters regardless of length (Twitter shortens them). Line breaks count as characters. The 280-character limit refers to Twitter's weighted count, which can differ from a simple character count for multilingual text.

GSM-7 is the original SMS encoding, supporting 128 characters (standard Latin alphabet, digits, and common symbols). A single SMS using GSM-7 can hold 160 characters. Multi-part SMS splits at 153 characters per part (7 characters are used for the message header). Unicode (UCS-2) encoding is used automatically when your message contains any character outside the GSM-7 set: such as emoji, accented letters outside standard Latin, Arabic, Chinese, or any special symbol. A Unicode SMS holds only 70 characters per part (140 bytes at 2 bytes per character). Multi-part Unicode SMS splits at 67 characters per part. Adding a single emoji to a 159-character message switches it to UCS-2 and turns one segment into three.

Google typically displays meta descriptions up to 160 characters, though it may truncate at around 120 characters on mobile. Best practices: aim for 120 to 155 characters so it appears in full on all devices. Include your primary keyword naturally near the beginning. Write it as a compelling call to action: it directly affects click-through rate from search results. If your description is too long, Google truncates it with an ellipsis. If it is too short (under 70 characters), Google may rewrite it using content from the page. Unlike the page title, meta descriptions are not a direct ranking factor, but they influence CTR which indirectly affects rankings.

Google displays page titles based on pixel width, not character count. The practical limit is approximately 50 to 60 characters, which maps to about 600 pixels in Google's font. Titles beyond 60 characters are truncated with an ellipsis in search results. Best practices: put the primary keyword near the beginning. Include the brand name at the end, separated by a pipe or dash: Primary Keyword: Brand Name. Avoid keyword stuffing: Google may rewrite overly optimized titles. Keep it descriptive and compelling. A well-written 50-character title outperforms a keyword-stuffed 60-character one. Google says it shows the page's own title element about 87% of the time and writes its own title link for the rest, usually when a title is missing, stale or stuffed with keywords.

Instagram captions allow up to 2,200 characters total. However, only the first 125 characters are visible without tapping "more" in the feed. The first line is therefore critical: it acts as a hook to encourage the reader to expand. Hashtags count toward the 2,200 limit. Since December 2025 Instagram allows up to 5 hashtags per post. Best practice for engagement: put the main message in the first 125 characters, then expand, then add hashtags at the end or in the first comment. Instagram Stories have no caption, only text overlay with a practical limit of a few dozen characters before it overlaps the visual. Instagram bio is limited to 150 characters.

LinkedIn posts allow 3,000 characters. Comments allow 1,250 characters. The "see more" cutoff in the feed is at approximately 210 characters. Like Instagram, the first 210 characters determine whether someone clicks "see more." Research on LinkedIn post performance: longer posts (1,000 to 2,000 characters) tend to generate more engagement than short ones because the platform rewards dwell time. However, the first 210 characters must be compelling enough to prompt expansion. Lists, line breaks, and emojis improve readability on LinkedIn. Posts with no external links tend to get more reach (LinkedIn de-prioritizes outbound links). Articles (LinkedIn newsletter) have no practical character limit.

Emoji are complex in terms of character counting. In UTF-8, most standard emoji use 4 bytes. In JavaScript (and most browser text measurement), emoji are counted as 2 code units because JavaScript uses UTF-16 internally, and most emoji fall in the "supplementary plane" requiring a surrogate pair. Some modern emoji are sequences: the family emoji (family: man, woman, girl, boy) is actually 4 emoji joined by 3 zero-width joiners (7 code points, 11 UTF-16 code units and 25 bytes in UTF-8). It looks like 1 emoji but counts as multiple characters depending on the platform. Skin tone modifiers add additional code points. The safest approach: always test your text on the actual platform. Twitter, Instagram, and SMS each count emoji differently, and platform counts can differ. This tool counts each visible emoji once and shows the X weighted count separately.

RFC 5322 (the current email standard, which replaced RFC 2822) recommends subject lines no longer than 78 characters per line, though longer subjects are technically permitted. The practical limit is determined by email clients. Gmail shows approximately 70 characters on desktop, 40 on mobile. Outlook shows approximately 73 characters. Apple Mail shows approximately 85 characters. For email marketing: studies consistently show that subject lines of 41 to 50 characters get the best open rates. Very short lines (6 to 10 characters) can also perform well due to curiosity. Subject lines over 60 characters are often cut off on phones. Preheader text (the preview line) extends the effective message to around 90 characters on most clients.

YouTube allows up to 100 characters for video titles. However, only 60 to 70 characters are shown in most contexts: search results, suggested video sidebar, and browse features. Characters beyond 60 are truncated with an ellipsis in most views. Best practices: put the most important keywords and hook in the first 60 characters. The remaining 40 characters can include secondary keywords or context that appear in the full title page. YouTube descriptions allow up to 5,000 characters, but only the first 100 to 150 are visible before "Show more" in search results. Tags are limited to 500 characters total. Channel descriptions are limited to 1,000 characters.

Yes. Every space, tab and line break counts as one character in the main count, the same way X, SMS and most form limits count them. The "No Spaces" figure removes all whitespace, which is what some school and translation briefs ask for. "Hello world" is 11 characters with the space and 10 without.

Tools count different things. Many use the JavaScript string length, which counts UTF-16 code units, so an emoji counts 2 and a family emoji 11. This counter counts visible characters, so each of those counts 1. Word processors may also skip line breaks or count them differently. For a platform limit, use that platform's own method: X uses a weighted count and SMS switches between 160 and 70 characters depending on the encoding.