A character counter answers “how long is this string” when the limit is characters, not words. This character counter shows Unicode characters, characters excluding whitespace, JavaScript string length, and UTF-8 bytes. You can type an optional limit and read how many Unicode characters remain. Counts update as you type. Nothing is uploaded.
Those lengths are not the same number. “café” is four Unicode characters and five UTF-8 bytes because é is two bytes. An emoji is often one visible glyph, two UTF-16 code units, and four UTF-8 bytes. A tool that prints one unlabeled “characters” figure hides that difference until a form rejects the submit.
Use this page for SMS-ish limits, meta descriptions, filenames, and any box that says “N characters.” Use the Word Counter when the limit is words, sentences, or paragraphs. This page will not invent a word count. That split keeps the labels honest.
The remaining row is a dash when no limit is set. A non-numeric limit is an error and does not change the length rows. Pasted HTML is counted, not executed.
Example text Hello 👋 café is 12 Unicode characters (including the space), 10 if you drop whitespace, 13 JavaScript string units because the emoji uses a surrogate pair, and 16 UTF-8 bytes. With limit 10, remaining is −2. That is the point of showing four numbers instead of one.
Hello 👋 café
Unicode 12 · no whitespace 11 · JS length 13 · UTF-8 16
Array.from. Combined emoji sequences (skin tone, ZWJ families) can still be several code points that look like one glyph. This page does not do grapheme clustering.string.length in the browser. Older “Twitter 140” talk often meant this, not code points.TextEncoder. That is the usual on-the-wire size, not a database CHAR column.This is not a tweet composer, an SMS encoder, or a UCS-2 billing calculator. Those products weight characters by vendor rules this page does not implement. If a CMS says “255 characters” and then stores UTF-8 in a 255-byte column, the byte row is the one that will fail first.
For words and sentences, go back to the Word Counter. To shorten the string, the Whitespace Cleaner can collapse repeated spaces before you count again.
Privacy is the same as the other text tools. The string you type is processed in this tab. A refresh or a closed window drops it. That is not a promise that a screenshot never existed; it is a promise that this page does not send the field to YallaSolve for counting.
When you write the number down, write which row you used. “12 Unicode characters” and “16 UTF-8 bytes” are different claims about the same paste. A ticket that says only “12 characters” will be reopened the first time an emoji lands in the field.
Unicode characters are code points. JavaScript string length counts UTF-16 code units. Emoji often make those two numbers disagree.
Remaining uses Unicode characters. Read the UTF-8 row if your storage limit is bytes.
Yes, in Unicode characters, JavaScript length, and bytes. The “excluding whitespace” row is the one that drops them.
No. The field is a textarea. Counts are written as text. Markup is only more characters.