Illustration of a single emoji expanding into several stacked code blocks next to a line-break symbol

Text & writing

How Emojis and Line Breaks Affect Character Counts

Most character-count surprises come from three things: emoji, line breaks, and letters that are built from more than one piece. What you see as one character can be stored as several, and different tools count different layers. This guide explains those layers and how the Looty Tools Character Counter handles each one.

Ready to try the tool this guide describes?

Three ways to count “a character”

Visible characters — what Unicode calls grapheme clusters — are what a person would count by pointing at the screen. Code points are the individual Unicode values underneath. UTF-16 code units are how JavaScript and many other systems store text, and they are what a plain text.length measures in a browser.

The Looty Tools Character Counter counts visible characters, so every row in the table counts as 1.

Three ways to count “a character” comparison
TextVisible charactersUnicode code pointsUTF-16 code units
A111
é (single precomposed character)111
é (e + combining accent)122
😀112
👍🏽 (thumbs-up with skin tone)124
🇬🇧 (flag)124
👨‍👩‍👧‍👦 (family)1711

Why emoji are the biggest source of disagreement

Many emoji are sequences. A skin-tone emoji is a base emoji plus a modifier. A flag is two regional-indicator letters. Family, profession, and many other emoji join several emoji with an invisible zero-width joiner. Your device draws the sequence as one picture, but a system that counts code units sees every piece.

Some platforms also apply their own weighting on top — for example, X counts every emoji as 2 characters regardless of how it is built. So an emoji can legitimately count as 1, 2, or 11 depending on who is counting.

Line breaks: one character or two?

Windows traditionally ends a line with two control characters — carriage return plus line feed (CR LF) — while macOS, Linux, and the web usually use a single line feed. Text copied between programs can carry either style.

The Character Counter normalizes both to one line break, so a line break always counts as exactly 1 character with spaces and 0 without. Other systems may not: when an HTML form is submitted, browsers send line breaks as CR LF, so a server-side limit can count each break as 2.

Accents and combining marks

Many accented letters can be stored two ways: as a single precomposed character, or as a base letter followed by a combining accent. They look identical, and text copied from different sources — especially some Mac file names and PDFs — can mix both forms. Counting visible characters gives the same result for both, which is usually what people expect.

Invisible characters

  • Zero-width spaces and joiners can be pasted in accidentally from web pages and rich-text editors. On their own they are invisible, but they are still characters and are counted in both totals.
  • Non-breaking spaces look like ordinary spaces and are treated as whitespace, so they count with spaces and are excluded without spaces.
  • If a count seems a few characters too high for what you can see, invisible characters from a copy-and-paste are a likely cause; retyping the affected line removes them.

Emojis, Line Breaks & Unicode FAQ

Why does one emoji count as 2 characters in some apps?
Most emoji are stored as two UTF-16 code units, and apps that measure storage count both. Some platforms, like X, also deliberately weight every emoji as 2.
How many characters is a family emoji?
It is one visible character, but it is built from seven code points — four people joined by three zero-width joiners — which take 11 UTF-16 code units.
Does a Windows line break count as two characters?
It is stored as two control characters, but the Looty Tools Character Counter treats any line break as one character. Some other systems, including form submissions, count it as two.
What is a grapheme cluster?
It is Unicode’s term for a user-perceived character: whatever a reader sees as a single letter or symbol, even if it is made from several code points, such as a letter with a combining accent or an emoji sequence.
Why is my character count higher than the characters I can see?
Invisible characters such as zero-width spaces are often picked up when copying from web pages or rich-text editors. They count as characters even though they do not display.

Related guides

Open the tool

Jump into Character Counter when you are ready to process your files.

← Back to all guides

More from Looty

Explore Looty’s Ecosystem

Discover more ways Looty can help you learn, organize, create, and make an impact.