Back to Blog

One Emoji Cut My Text Budget to 70

September 9, 2026
Share:
One Emoji Cut My Text Budget to 70

A text message holds 160 characters. Put one emoji in it and it holds 70.

Not 159. Seventy. The whole message flips from the 7 bit alphabet to UTF-16, every character in it doubles in cost, and a message you thought was one part is now three. If you are paying per part, you just tripled the bill for a smiley.

No word counter tells you that. They count characters and hand you a number, and the number is right and useless.

The word and character counter counts the way each platform counts. Thirty-three of them, with a meter each.

I ranked this first out of 1,761. Score 9.75. About six hours on the card. It was the first tool I built off that queue, and this post is six days late, which is its own small lesson about shipping.

A Character Count Is Not a Limit

Every counter online gives you the same four numbers: characters, words, sentences, paragraphs. Then you paste into the box that actually matters and it tells you that you are over.

That happens because almost nothing counts plain characters.

X counts a weighted length. SMS counts segments in an encoding it picks for you. Google does not count at all, it just stops drawing your title at a pixel width. LinkedIn counts characters but its headline field and its post field have different caps, and neither is the one in the article you read.

The number that matters is the platform's number, not the character count.


What X Actually Counts

An X post is 280, and almost nobody can tell you what one of those 280 is.

Any link counts as 23 characters. A one character URL and a 400 character URL both cost 23, because the platform rewrites them all through its own shortener. Emoji cost 2, and so does CJK.

Everything below code point 4351 stays at 1, which catches out more people than the emoji rule does. Russian, Arabic, Hebrew, Greek and Thai all cost the same as English. Chinese and Japanese cost double.

The text is normalized first, so a café typed with a combining accent is 5 characters and counts 4.

The meter on this page implements that. Paste a post with two links and a heart emoji and the meter moves the way the box will move, which is the only thing you wanted from it.

What you pasteNaive countWhat X counts
https://softery.io/tools/token-counter3823
One waving hand emoji12
你好24
Привет66
café typed with a combining accent54

GSM-7, and the Cliff Behind It

SMS is worse, and the cliff is steeper.

The default alphabet is GSM-7. It holds 160 characters in a single message. Go over and the message splits, and each part now holds 153, because seven characters go to the header that reassembles them.

A handful of characters cost two slots in GSM-7 rather than one: the square brackets, the curly braces, the backslash, the tilde, the caret, the pipe and the euro sign. Nothing warns you.

And then there are the characters that are not in GSM-7 at all. An emoji. A curly quote your phone inserted when you typed an apostrophe. An em dash pasted from a document. Any one of them flips the whole message to UCS-2, and the budget drops from 160 to 70. Once it splits, 67 per part.

The counter names the encoding, counts the segments and says how many characters are left in the current one. Type one emoji into a 150 character message and watch it go from one part to three.


The Curly Quote Problem

This is the one that quietly eats a marketing budget.

You write your SMS campaign in a document. The editor turns your straight apostrophe into a curly one, silently, because it thinks it is helping. You paste it into the sending platform. Nothing looks different.

Every message is now UCS-2. A 150 character message went from one segment to three. Multiply by 40,000 recipients and the invoice is three times what you modelled.

The fix is a straight apostrophe. The hard part is noticing, and noticing is what a meter is for.


Thirty-three Limits, and Which Ones Are Real

The page carries 33 platform limits, in four groups: social, SEO and ads, messaging and writing.

Some of them are enforced by software. An X post over 280 will not send. A Discord message over 2000 will not send. Those are hard walls.

Others are not limits at all. Google does not reject a long title tag, it truncates the display at roughly 60 characters, and where it truncates depends on the pixel width of your particular letters. A meta description at 160 is the same kind of soft number. An email subject line has no cap in SMTP; it just gets cut off in whatever inbox the reader uses.

Calling both of those a limit is a wrong promise. The page marks the soft ones as guidelines and says so on the meter, because "you are over the limit" and "this will probably get cut off in the search result" are different pieces of advice.


The Toggle Autocomplete Asked For

Search word counter and the box fills in with word counter without citations, word count checker excluding citations, and variations of the same request.

That is a supervisor telling a student the essay is 4,000 words and the reference list does not count. Or a journal capping an abstract. The person needs two numbers: the full count and the count without the bracketed citations and the reference block.

There is a switch on the page for it. It strips numeric brackets, author-date parentheticals and a trailing reference section, then recounts. That is a feature that exists because the search autocomplete said out loud what people need, which is a better product signal than most surveys.


Counting a Selection

Select part of the text and the counts switch to the selection. Deselect and they switch back.

This sounds trivial. It is the thing people do most: paste a whole document, then highlight one paragraph and ask how long that paragraph is. Most counters make you cut the paragraph into a second tab.


Words Are Harder Than They Look

A word count sounds like it should be one line of code. text.split(/\s+/).length. It is not, and the disagreements between counters are all in the edge cases.

Is state-of-the-art one word or four? Word and Google Docs say one. Some counters say four. This page says one.

Is don't one word? Yes, and so is don’t with the curly apostrophe, which is a separate check because the two characters are different code points.

Is --- a word? No. Neither is ***. A token with no letter and no digit in it is not a word.

Is 我喜欢编程 one word? It has no spaces in it at all. Chinese, Japanese and Thai do not separate words with spaces, so a whitespace split returns 1 for a whole sentence. The page segments those scripts properly instead.

Is 3,000 one word or two? One.

None of these matter until you are two words over a hard limit and the box disagrees with your counter.


Reading Time, and Why It Is 238

The page shows a reading time and a speaking time. Both are just words divided by a rate, and the rate is the whole question.

Reading is 238 words a minute and speaking is 140. Those are the figures most publishers use for an "x min read" badge, and they are the two constants in the code.

Neither is a fact about your reader. They are averages with wide spreads, and a technical paragraph with three code samples in it will take anyone longer. The number is there to answer "is this a two minute read or a ten minute read", and it is honest at that resolution and no finer.


The Word You Repeat Without Noticing

There is a density panel under the counts. It lists the words you used most, with how many times and what share of the text they took.

Everybody has a word they lean on and nobody can spot their own. The panel skips the words that carry no signal, so you get "browser" and "tokenizer" rather than "the" and "and", and the one you overuse is usually sitting at the top of the list looking obvious.

For anyone writing to a keyword it is also the fastest way to see whether the keyword is in there twice or eleven times, which is the difference between a page that reads normally and one that reads like it is talking to a crawler.


Pin the Ones You Use

Thirty-three meters on screen at once is noise. Six of them are pinned by default: X post, Instagram caption, Discord message, LinkedIn headline, meta description and SMS.

Pin your own set and it persists. There is a filter box for finding one quickly, and a field for a limit that is not on the list at all, in characters or in words, because a client brief that says "300 words maximum" is a real limit even though no platform enforces it.

The pins and the draft both live in localStorage, which means they survive a refresh and never reach me.


What It Does Not Send Anywhere

There is no server in this loop. The counting is a few pure functions in the page, and the draft is saved to localStorage in your browser so a refresh does not lose it.

That matters more here than on most tools. People paste cover letters, personal statements, client emails and things they have not decided to send yet. A counter that posts your draft to a backend to count it is doing something you did not ask for.

The site loads Mixpanel and Google Analytics, and they see that someone opened the tool and which meters they pinned. They do not get the text.


The One That Ranked First

This was rank 1 of 1,761 on my queue, and it earned that on demand rather than on cleverness.

The searches are constant and specific. Word counter. Character counter. Twitter character count. How many characters is my Instagram caption. Meta description length. SMS character count. None of those are the same question, and one page can answer all of them if it counts the way each platform counts.

The incumbents rank on the generic query and then get the specific ones wrong. That is the whole opening.


What Sits Next to It

If you are trimming for a model rather than a platform, the token counter is the one you want. Models do not count characters either, and a paragraph of Russian costs about twice what the same paragraph costs in English.

If your text is full of em dashes because a model wrote the first draft, the em dash remover takes them out without eating the ranges and the compound words.

And if you are counting a cover letter because a job posting set a limit, Jobbi: AI Resume will write the thing and file the application.


The Short Version

A character count is not a limit. X weights links at 23 and emoji at 2. SMS drops from 160 to 70 the moment one character falls outside GSM-7, and a curly quote is enough to do it. Google never enforced your title length, it just cuts it off.

Pick the meter for the box you are actually pasting into. That is the whole tool.

The word and character counter is free, needs no account, and your draft stays in your browser.


Last updated: September 9, 2026 | Reading time: 10 minutes

Written by Evgeniy Poznyak, who has personally sent a three segment text message that should have been one.