About the Character Counter
This character counter shows how many characters are in your text — with and without spaces — plus words, lines, letters, digits and the UTF-8 byte size. Pick a target such as a 280-character post on X (Twitter), a 160-character meta description or a 60-character title tag, and it tells you how many characters you have left or how far over you are.
It is useful for social media managers, SEO writers checking title tags and meta descriptions, developers validating database field lengths, and anyone writing text messages. The SMS section works out whether your message uses the standard GSM-7 alphabet or Unicode and how many message segments it will be split into, which is what carriers bill for.
Characters are counted as Unicode code points, so an accented letter counts as one. Some emoji are made of several code points joined together and may count as more than one, and X weights emoji and links differently from plain characters, so treat social limits as a close guide.
With the default inputs, the characters (with spaces) is 142. Change any value above to recalculate instantly.
How to use the character counter
- 1Paste or type your text.
- 2Choose the limit you are writing for, or set a custom limit.
- 3Check the characters remaining and the limit status.
- 4For text messages, check the SMS encoding and segment count.
Formula and method
Every Unicode code point counts as one character, including spaces, punctuation and line breaks. "No spaces" removes all whitespace (spaces, tabs and new lines). The byte size is the UTF-8 encoding length: 1 byte for basic Latin, 2 for most accented letters, 3 for most other scripts and symbols, and 4 for emoji.
For SMS, a message written entirely in the GSM-7 alphabet fits 160 characters in one segment; characters such as € [ ] { } ~ | and ^ use two slots. Longer messages are split into 153-character segments because each part carries a header. Any character outside GSM-7 switches the message to UCS-2, which allows 70 characters in one segment or 67 per segment when split.
- GSM-7
- Standard 7-bit SMS alphabet (Latin letters, digits, common punctuation)
- UCS-2
- 16-bit Unicode SMS encoding used for emoji and non-Latin scripts
Worked examples
Meta description check
The sample description is 142 characters including 19 spaces, leaving 18 characters under the 160-character meta description guideline. All characters are plain ASCII, so it is also 142 bytes and fits in a single GSM-7 text message.
Title tag that is too long
The title is 73 characters, 13 more than the roughly 60 characters Google usually displays before truncating. Shortening "Compare Rates, Fees and Bonuses" to "Rates Compared" would bring it under the limit.
Text message with an emoji
The message is 101 characters, which would fit in one 160-character GSM-7 SMS. The emoji forces Unicode encoding, where it takes two UTF-16 units (102 in total), so the message exceeds 70 units and is sent as 2 segments of up to 67.
Frequently asked questions
Do spaces count as characters?+
Yes. Spaces, punctuation and line breaks all count toward character limits on X, SMS, meta descriptions and most form fields. The "no spaces" count is useful for some translation and publishing rates that exclude them.
How long should a meta description be?+
Google does not set a fixed limit, but snippets are usually cut to around 150–160 characters on desktop and fewer on mobile. Aim for 120–160 characters with the key message near the start.
How many characters is an SMS?+
A single SMS holds 160 GSM-7 characters or 70 Unicode characters. Longer messages are split into 153-character (GSM-7) or 67-character (Unicode) segments, and each segment is usually billed as one message.
What is the character limit on X (Twitter)?+
Standard accounts can post 280 characters. X counts each link as 23 characters and most emoji and CJK characters as two, so this counter may differ slightly for posts with links or emoji.
Why is the byte count higher than the character count?+
UTF-8 stores basic English letters in one byte but uses two to four bytes for accented letters, other scripts and emoji. Database and API limits are sometimes set in bytes rather than characters.