Character counter

Count characters with emoji, accents and Hangul handled as single glyphs. Spaces are included; UTF-8 bytes are shown beside the total.

Characters0
Words0
Lines0
Bytes0
Sentences0
Reading time0 min

What to know

This page is about the Characters box. It counts what a reader sees as one mark, not UTF-16 code units, so the string Café 🇰🇷 👨‍👩‍👧 comes to 8 characters even though a programming language may report a much larger length for it.

Accented letters, Hangul syllables and emoji sequences each count once. A flag is two regional indicators, a family emoji is three people joined by invisible connectors, and an e followed by a combining accent is two code points, yet each shows up as a single character here.

Spaces, tabs and line breaks all count, and there is no option to leave them out. When a form says without spaces, you can run Clean with Find and replace, enter a single space as Find, leave Replace empty, and paste that output back here.

Next to the total, the Bytes box shows the UTF-8 size: 33 bytes for the Café example, since é takes 2, the flag 8 and the family emoji 18. Application forms that count a Hangul syllable as 2 bytes use an older encoding, so expect this page to show 3 per syllable.

Platforms that cap a post may weigh some characters differently, for instance by treating links or certain scripts specially. Use this total as the raw count and check the platform's own rule before the final edit.

Why an emoji can have several different counts

This counter uses grapheme clusters when Intl.Segmenter is available. UTF-8 bytes are reported separately. A family emoji can be one grapheme cluster but 25 UTF-8 bytes, so the unit matters when checking an input limit.

Reproduce Korean and emoji edge cases

Our public 24-fixture reference compares UTF-16 units, code points, grapheme clusters and UTF-8 bytes. It includes composed and decomposed Korean, accents, flags and joined emoji, with downloadable JSON and a reproduction script.

Check the receiving form’s rule before relying on a count. This counter preserves spaces; older browsers without Intl.Segmenter fall back to code-point counting and can give a different result for combined sequences.

Continue with the task you need

Choose a specific task 1
Related tools 4
How to use Character counter
  1. Paste Café 🇰🇷 👨‍👩‍👧 to see how composed symbols are tallied, then replace it with your real text.
  2. Read Characters and subtract it from the limit, for example 300 minus the displayed total for the room left.
  3. If the form excludes spaces, run Clean with Find and replace, type one space in Find, leave Replace empty and copy the output.
  4. Paste the cleaned text back into the counter and read Characters again, then compare Bytes with any byte-based database limit.

Quick answers

How does the counter treat emoji such as 👨‍👩‍👧?

It counts a joined emoji sequence as one character, so the family emoji adds 1 to the total while adding 18 bytes in UTF-8.

Can I get a character count without spaces?

There is no built-in switch, but replacing every space with nothing in Clean and pasting the result back here gives the without-spaces figure. Line breaks remain, so remove those first if they matter.

Why do Hangul syllables show 3 bytes each?

UTF-8 stores Korean syllables in 3 bytes. A form quoting 2 bytes per syllable uses the older EUC-KR style, so the two numbers will not match.

Does an accented letter count once or twice?

Once, whether it is stored as a single character or as a base letter plus a combining accent. Only the bytes differ: a precomposed é takes 2 bytes, while e plus a combining accent takes 3.

Does character count equal byte count?

No. This tool reports grapheme clusters where supported and UTF-8 bytes separately. A combined emoji can contain multiple code points and many bytes.