πŸ’» Text & Dev

πŸ”€ πŸ”€ Character Counter: Count Characters, Letters, and Spaces

Learn how to count characters in text and why it matters. Covers character vs byte counts, Unicode handling, social media limits, SEO character targets, and common platform restrictions.

⏱️ 7 min read🦉 365tool.net🌍 For everyone worldwide

Character counting sounds trivial until you discover that a "character" is more complex than it appears β€” especially in Unicode. Understanding the difference between characters, bytes, and code points is essential for developers working with text storage, social media managers hitting platform limits, and SEO writers optimizing title tags and meta descriptions.

What is a Character?

In everyday use, a character is a single symbol β€” a letter, digit, space, or punctuation mark. But at the technical level:

  • Character (code point): A Unicode code point β€” the abstract number representing a symbol (e.g., "A" = U+0041)
  • Byte: The actual storage unit (8 bits). A character may require 1–4 bytes depending on encoding.
  • Glyph: The visual representation β€” what you see on screen. Some Unicode sequences combine multiple code points into a single visible glyph.

Character vs Byte Count: Why They Differ

In ASCII (English letters, digits, basic punctuation), 1 character = 1 byte. In UTF-8 encoding (the web standard), characters outside the basic ASCII set take more bytes:

Character Type Characters Bytes (UTF-8)
ASCII letters (a–z, A–Z)11
Latin accented (Γ©, Γ±, ΓΌ)12
Chinese/Japanese/Korean13
Emoji (πŸ˜€, πŸŽ‰)14

This matters when you're counting characters for database field limits (which often restrict bytes, not characters), SMS messages (which use different encodings), or APIs that count bytes.

Emoji and Unicode Complexity

Emoji introduce additional counting complications. A family emoji πŸ‘¨β€πŸ‘©β€πŸ‘§β€πŸ‘¦ is displayed as one character but is actually a sequence of 7 Unicode code points joined by Zero Width Joiner (ZWJ) characters. In JavaScript, str.length counts UTF-16 code units β€” an emoji that needs 4 bytes in UTF-8 counts as 2 in JavaScript's length property. Twitter's character counter correctly handles this; many naive implementations don't.

Key Platform Character Limits

Platform / Field Limit Notes
X (Twitter) post280URLs count as 23
Google title tag50–60Pixel-based; ~600px wide
Google meta description155–160Truncated with ellipsis beyond
SMS (ASCII)160GSM-7 encoding; one "part"
SMS (Unicode/emoji)70UCS-2 encoding per part
Instagram caption2,200First ~125 visible without tap
YouTube title100~70 shown in search
Open Graph title60–90Varies by sharing platform

SEO Character Targets

Title tags: Google doesn't technically have a character limit β€” it has a pixel width limit of approximately 600 pixels for desktop. At average font size, this works out to roughly 50–60 characters. Longer titles get truncated with "..." in search results, potentially cutting off important keywords.

Meta descriptions: The visible limit in Google search is approximately 155–160 characters on desktop and 120 characters on mobile. Exceeding this gets truncated, but Google can rewrite your meta description entirely if it deems another passage from your page more relevant.

URL slugs: No hard limit, but keep slugs under 75 characters. Google's John Mueller has confirmed that very long URLs are harder to crawl and share.

Counting Characters in Different Languages

Most web character counters count Unicode code points (what most people intuitively expect). For languages with complex character composition (Arabic with vowel marks, Korean with jamo clusters, Hindi with matras), the visible character count may differ from the code point count. For maximum cross-platform compatibility in user-facing limits, always test with the actual target language and platform.

Try It Yourself! ✨

Use our free Character Counter — results appear as you type. No sign-up needed!

🚀 Open Character Counter Free

❓ Frequently Asked Questions

What is the difference between a character and a byte?
A character is an abstract symbol (a letter, number, emoji). A byte is 8 bits of storage. In ASCII, every character is 1 byte. In UTF-8 (the web standard), English letters are 1 byte, accented Latin characters are 2 bytes, Chinese/Japanese characters are 3 bytes, and most emoji are 4 bytes. Database field limits often restrict bytes, not characters β€” important when storing non-English text.
Do emoji count as one character?
Visually, yes β€” one emoji looks like one character. But at the code point level, many emoji are multiple Unicode code points. Family emoji like πŸ‘¨β€πŸ‘©β€πŸ‘§β€πŸ‘¦ are 7 code points joined by invisible ZWJ characters. JavaScript's string.length counts UTF-16 code units, so some emoji count as 2. Platform character counters (Twitter, Instagram) typically handle this correctly, but naive implementations may not.
How many characters is a Google title tag?
Google truncates title tags at approximately 600 pixels wide, not a fixed character count. At typical desktop font size, this is roughly 50–60 characters. Wide characters (W, M) consume more pixels than narrow ones (i, l, 1). Target 55 characters as a safe working limit. Titles truncated by Google display "..." which can obscure important keywords.
Why does an SMS with emoji have fewer characters than one with only text?
Standard SMS uses GSM-7 encoding, which allows 160 characters per message. When you include emoji or non-ASCII characters, the message switches to UCS-2 encoding, which only allows 70 characters per message "part." Multiple parts are sent as a multi-part SMS, and carriers may charge per part. Keeping business SMS under 160 ASCII characters avoids this.
What character count should a meta description be?
Keep meta descriptions between 120–155 characters. Google shows approximately 155–160 characters on desktop and ~120 on mobile before truncating. Descriptions shorter than 120 characters leave valuable description space unused. Note that Google may rewrite your meta description entirely if it finds a more relevant passage in your page content.