Character Counter
Count characters, words, lines and bytes in real time. Add an optional limit to see how many characters remain.
Count characters instantly
Paste or type text to see live counts for characters, characters without spaces, words, lines and UTF-8 bytes. You can also set an optional character limit.
Character count with a limit
When you enter a limit, the Remaining counter shows how many characters are left. A negative result means the text is over the selected limit.
Characters versus bytes
Character count measures visible text units, while UTF-8 byte count measures the encoded data size. Some characters and emoji use more than one byte.
Check a small example first
The text Hello world has 11 characters including its space, 10 without whitespace, 2 words and 11 UTF-8 bytes. With a limit of 10, Remaining shows -1. Removing the space brings the total to 10 but joins the words.
Why another service may show a different total
A visible emoji can contain multiple Unicode code points. This tool uses browser text segmentation when available, while some services count code points or UTF-16 units. A byte limit is different again. Check the destination's counter before submitting text to a strict field.
Line breaks and other whitespace affect the totals. The limit is a planning aid and does not truncate the text. For an article-length target and estimated reading time, use the Word Counter.
How different characters are counted
This counter counts characters the way you see them on screen, so an emoji or a flag is 1 character. Other systems count the same text in other units, which is why two counters can disagree. These are the exact results for a few examples:
| Text | This counter | Code points | UTF-16 units | UTF-8 bytes |
|---|---|---|---|---|
| a | 1 | 1 | 1 | 1 |
| é | 1 | 1 | 1 | 2 |
| مرحبا (Arabic word) | 5 | 5 | 5 | 10 |
| كَتَبَ (with diacritics) | 3 | 6 | 6 | 12 |
| 👍 | 1 | 1 | 2 | 4 |
| 👍🏽 (with skin tone) | 1 | 2 | 4 | 8 |
| 👨👩👧 (family) | 1 | 5 | 8 | 18 |
| 🇯🇴 (flag) | 1 | 2 | 4 | 8 |
Arabic diacritics (tashkeel) attach to the letter before them, so كَتَبَ counts as 3 characters here but 6 code points. SMS uses UTF-16 units: an emoji takes 2 of the 70 units in a Unicode message. X counts each emoji as 2 towards the 280 limit. When a field is strict, check its own counter as well.
How many SMS parts a message needs
A message written only in the basic Latin character set (GSM-7) fits 160 characters, or 153 per part when it is split. One Arabic letter, emoji or other special character switches the whole message to Unicode (UCS-2), which fits 70, or 67 per part.
| Message | Encoding | Parts |
|---|---|---|
| 200 English characters | GSM-7 | 2 (153 + 47) |
| 99 English letters and one 👍 | UCS-2 (101 units) | 2 |
| 200 Arabic characters | UCS-2 | 3 (67 + 67 + 66) |
If you pay per SMS part, removing a single emoji from a 100-character English message can halve the cost.
Sources
Frequently Asked Questions
Does the character counter include spaces?
The main Characters count includes spaces. A separate counter shows characters without whitespace.
Can I set a character limit?
Yes. Enter any positive limit and the tool will show the number of characters remaining.
Does it count emoji?
The tool uses browser text segmentation when available so emoji and combined characters are counted more naturally.
Is my text uploaded?
No. The counting happens locally in your browser.
Common character limits
| Where | Maximum |
|---|---|
| X (Twitter) post, standard account | 280 |
| Instagram caption | 2,200 |
| LinkedIn post | 3,000 |
| YouTube title | 100 |
| SMS, plain Latin text | 160 per message (153 per part if longer) |
| SMS with Arabic, emoji or other special characters | 70 per message (67 per part) |
One emoji or Arabic letter switches an SMS to a 2-byte encoding, cutting the limit from 160 to 70. That's also why the UTF-8 byte count here can be larger than the character count. Details are in Character Limits for Social Posts, SMS and SEO Titles.