You need to know how many characters your text is, and you need the number to be the right one. Paste it below and the count appears as you type.
If two counters have given you two different answers and you are wondering which one is broken, do not worry, neither of them is. There are genuinely four different right answers to “how many characters is this”, and most tools pick one without telling you. That is the whole reason this page exists, and it is explained properly below.
Nothing you paste leaves your browser. The counting happens on your own computer, so there is no upload and nothing stored. That is worth saying about a character counter in particular, because people paste half written messages, client work and private notes into one.
Other length limits
Why there are four numbers, and none of them is wrong
Think of it like asking how big a parcel is. You can answer in inches, in weight, or in how much shelf space it takes. All three are correct, and which one matters depends on whether you are posting it, lifting it, or storing it.
Text is the same. Here is the same question asked four ways, with real answers:
| What you typed | What you see | Code points | UTF-16 | Bytes |
|---|---|---|---|---|
| The letter a | 1 | 1 | 1 | 1 |
| An accented é | 1 | 1 | 1 | 2 |
| An e with the accent added separately | 1 | 2 | 2 | 3 |
| A plain smiley | 1 | 1 | 2 | 4 |
| A flag | 1 | 2 | 4 | 8 |
| A family emoji | 1 | 7 | 11 | 25 |
| One Chinese character | 1 | 1 | 1 | 3 |
This is the part a character counter has to get right, and most do not. Look at the family emoji. You see one thing on your screen. A programmer’s default character count says eleven. A storage system says twenty five bytes. Every one of those numbers is correct, and if a counter gives you only one of them without saying which, you have no way of knowing whether it is the one you needed.
- What you see. Count them the way a person reading the screen would. This is what you want for a caption limit, a headline, or anything a human is going to look at.
- Code points. How many pieces Unicode thinks your text is built from. Useful when you are working with the text in code.
- UTF-16 units. What almost every programming language reports if you just ask for the length. If a website’s form is rejecting your text and you cannot see why, this is very often the number it is checking.
- Bytes. The actual storage. This is what a database column limit means, and it is why a field that says 255 characters can reject a much shorter piece of text full of emoji.
Where it stops. Working out what counts as one thing on screen needs a full table of the rules for joining characters together, which browsers have built in. Firefox only added it in 2024. On anything older this page falls back to handling the common cases by hand, which covers emoji, flags, skin tones and accents, but may disagree with the browser on a very unusual script. The other three numbers are exact everywhere.
The text message limit is not 160, and that one costs money
This is the one worth knowing even if you never use this page again.
A text message holds 160 characters, but only while every single character comes from a specific old alphabet. It has the plain English letters, digits, common punctuation and a few accented European letters. That is roughly it.
Put in one character from outside that list and the whole message switches to a wider format, and the limit drops from 160 to 70.
One emoji does it. One curly apostrophe, the kind Word inserts automatically, does it. One Chinese, Arabic or Hebrew character does it.
The example that costs businesses real money. You write a 158 character message. It is one text. You add a smiley to be friendly. It is now three texts, and you are billed for three. Nothing on screen warns you, and a counter that prints a flat 160 tells you that you still have two characters left.
There is a second trap on top of that. Once a message is too long and gets split, each part no longer holds 160. It holds 153, because each part carries a small header saying which piece it is. In the wider format it drops from 70 to 67. So 161 characters is two messages, not one and a bit, and 306 is where the second one runs out.
The tool above works all of this out properly and tells you which character broke the alphabet, so you can swap it or accept the cost knowingly.
Where it stops. It counts the message the way the standard says it should be counted. Individual networks and bulk sending services occasionally do their own thing, and a few charge by part in ways that do not match. Treat the number as the technical answer, and check your provider’s own count before sending something very large.
X does not count characters either
The limit is 280, but it is 280 weighted units rather than 280 characters.
Most Latin, Greek and Cyrillic letters weigh one. Everything else weighs two, and that includes every emoji and every Chinese, Japanese and Korean character. So a post in Chinese runs out at 140 characters, not 280, and a post with ten emoji in it has spent twenty of its allowance.
Where it stops. Links are a separate rule again. X replaces every link with its own shortened version and charges a fixed length for it however long the original was. This page counts the link as you typed it, so if your post is close to the limit and has a long link in it, you have more room than the number suggests.
The other limits it checks
- Search result title, 60. Not a hard limit. Search engines measure the width in pixels rather than counting letters, so a title full of wide letters is cut sooner and one full of narrow ones survives longer. 60 is the point past which most titles start being trimmed.
- Meta description, 160. Same idea and the same caveat. Search engines also rewrite descriptions whenever they feel like it, so treat this as a target rather than a promise.
- Instagram caption, 2,200. A hard limit, though only the first line or two show before the more link.
- LinkedIn post, 3,000. A hard limit, and again only about two lines show before see more.
- Facebook post, 63,206. A hard limit, and far longer than anyone is going to read.
Frequently asked questions
Is my text sent anywhere?
No. It runs in your browser and there is no upload of any kind. You can check that yourself rather than believing me: open your browser’s developer tools, go to the Network tab, and type into the box. Nothing is sent. You can also disconnect from the internet and it carries on counting.
Which of the four numbers should I use?
If a person is going to read it, use the first one, what you see. If a form or a program is rejecting your text, try UTF-16, because that is what most code checks. If a database is complaining, use bytes.
For plain English with no emoji and no accents, all four are the same number, which is why most people use a character counter for years without ever discovering the problem exists.
Why does my form say I am over the limit when this says I am under?
Almost always because the form is counting UTF-16 units and you are looking at what you see. Compare those two numbers above. If your text has emoji in it, the UTF-16 number will be noticeably higher, and that is the one the form is using.
Does it count words too?
It gives you a word count, yes. If words are the main thing you are counting, the word counter is the better page: it does reading time, speaking time and which words you lean on most.
Does it work for Chinese, Japanese, Arabic or Hebrew?
Yes for characters, and that is what this page is for. The character counts, the byte count, the text message calculation and the X weighting are all correct for those scripts, and getting them right is exactly where most counters fall down.
The word count will not be right for Chinese, Japanese or Thai, because those do not put spaces between words and splitting them properly needs a dictionary of the language. I would rather say so than hand you a confident number that is wrong.
If you have any issues, you can ask me via comment, and I will love to help you out.