A character count only helps if it is taken the same way the limit is enforced: same unit, same rules, same text. The ten mistakes below each break that in a different way. Every one has a concrete example, a fix and a link to the guide that covers it in depth.

1. Not knowing whether spaces count

Send the report by Friday. is 26 characters with spaces and 22 without. On one sentence the gap is 4. Ordinary prose has about one space per word, so over a long text the two counts drift apart by roughly the number of words.

Whether spaces count is a property of the limit, not of the text. Google Docs, for example, reports both figures: "Characters" and "Characters without spaces".

Fix: read the wording of the limit. If it does not mention spaces, assume they count. That is the safer reading, because the count with spaces is never the smaller one. The guide to counting with and without spaces goes deeper.

2. Assuming an emoji is one character everywhere

👍🏽 is one visible character. It is also 2 Unicode code points, 4 UTF-16 code units and 8 UTF-8 bytes, and X counts it as 2. Each of those figures is the one that some system uses.

A practical case: the HTML maxlength attribute counts UTF-16 code units, so a field with maxlength="10" holds five 🙂, not ten.

Fix: find out which unit the destination uses, and when it is not documented, paste an emoji into the real field and watch its counter. See why emoji produce different counts.

3. Ignoring combining characters and normalization

The word café can be stored with é as a single code point, or as the letter e followed by a combining accent. The two versions look identical. The first is 4 code points and the second is 5.

Software that counts code points gives two different lengths for what a reader sees as the same word. Software that compares them finds they are not equal. A field limited to 4 code points would accept one and reject the other.

Fix: for a limit that people read, count visible characters, which is 4 for both versions. For comparisons and for limits in code points, convert the text to one normalization form first. The guide to code points and grapheme clusters explains both.

4. Confusing characters with bytes

naïve café is 10 characters and 12 bytes in UTF-8, because ï and é take two bytes each. 日本語 is 3 characters and 9 bytes. A single 🙂 is 4 bytes.

A limit set in bytes therefore allows fewer characters as soon as the text is not plain English. Some database columns and some APIs set their limits this way.

Fix: look for the word "bytes" in the documentation, and measure bytes when you find it. UTF-8 bytes vs characters shows how, and the guide to database field limits lists which databases count which unit.

5. Forgetting line endings

A line break is a character, and there are two common ways to store it. Unix-style text uses a line feed (LF). Windows-style text uses a carriage return followed by a line feed (CRLF).

Line one, a line break and Line two is 17 characters with LF. With CRLF it is still 17 visible characters, because Unicode's grouping rules keep the pair together as one, but it is 18 code points and 18 bytes.

Web forms add a twist. The HTML Standard counts each line break in a text area as one character for maxlength, then sends it to the server as CRLF. A message with five line breaks reaches the server five characters longer than the browser counted.

Fix: decide how line breaks should count and apply the same rule at both ends. If you are filling in someone else's form, leave a margin of one character per line break. More in how line breaks, tabs and spaces affect the count.

6. Assuming every platform counts the same way

Platforms that publish their rules do not agree with each other.

  • X uses weighted counting. Most Latin letters count as 1, every emoji counts as 2, Chinese, Japanese and Korean characters count as 2, and every link counts as 23 whatever its real length. 日本語 is 3 visible characters and 6 on X.
  • Google Ads counts each character in a double-width language such as Chinese, Japanese or Korean as 2.
  • Others, Instagram and LinkedIn among them, give a limit in "characters" and do not say how emoji or accented letters are treated.

Fix: use the documented rule where one exists. Where none does, treat any outside count as an estimate and confirm in the platform's own field. The limits reference shows the counting unit each source gives and notes where none is specified. The social media limits guide has more on individual platforms.

7. Using an ordinary counter for SMS

A text message is not limited by characters. It is limited by encoded units, and the encoding depends on the content.

In the standard GSM 7-bit alphabet, a single message holds 160 units. A few characters, among them €, [ and ], cost 2 units each: Price: €5 [approx] is 18 characters and 21 units.

One character outside that alphabet switches the whole message to Unicode, where a single message holds 70 units. Take a 100-character message that fits in one part. Add a single curly apostrophe and it becomes 101 Unicode units, which is two parts.

Fix: use a counter that knows both encodings. The SMS Character Counter shows the encoding, the units used and the characters that forced Unicode. It follows the standard rules, and providers and carriers can differ. Background is in SMS character limits.

8. Treating SEO length guidelines as Google limits

The character figures quoted for page titles and meta descriptions are rules of thumb from the SEO industry. Google does not publish them.

Google's documentation says there is "no limit on how long a <title> element can be", and that title links are truncated as needed, "typically to fit the device width". It says the same about meta descriptions. What shows in results depends on how wide the text is on a given screen, and a count of characters only approximates that.

The mistake is treating a guideline as a rule: cutting a useful word to get under a number, or padding a description to reach one.

Fix: use the common figure as a rough guide and put the important words first. This site labels those two presets "Common guideline" for that reason. See SEO title length and meta description length.

9. Invisible characters from copy and paste

Text copied from web pages, PDFs and word processors can carry characters you cannot see, or cannot tell apart from ordinary ones.

  • Non-breaking space (U+00A0). 10 km typed with one looks the same as with a normal space. It is the same number of characters, but 6 bytes where the ordinary version is 5, and the two strings are not equal.
  • Zero-width space (U+200B). The word word followed by one looks like 4 characters. It counts as 5, and as 7 bytes. Unicode does not class it as whitespace, so this site's count without spaces includes it as well.
  • Curly quotes and long dashes. These are visible but easy to miss. They are different characters from the straight quote and the hyphen, they take 3 bytes each in UTF-8, and neither is in the GSM 7-bit alphabet, so one of them turns an SMS into Unicode.

Fix: when a count is higher than what you can see, suspect pasted text. Paste as plain text, or retype the spaces and quotes around the suspect area. In the Character Counter's Advanced statistics, compare "Spaces", which counts only the ordinary space, with "Whitespace characters", which counts every kind. The guide to line breaks, tabs and spaces covers the visible kinds in detail.

10. Trusting one application's count for another's limit

The count in your writing application and the count in the form you submit to are two separate programs with two sets of rules. They can differ on spaces, line breaks, emoji and what part of the document is included. Google Docs, for example, says its count "applies to everything except headers, footers, and footnotes" unless you select a section.

A count that passes in one place can fail in the other, and it is the destination's counter that decides.

Fix: draft wherever you like, then paste the final text into the real field before you treat it as finished. Leave a small margin on strict limits. See counting characters in Word and Google Docs and how limits work in online forms.

Five questions before you trust a count

  1. What unit is the limit in? Visible characters, code points, UTF-16 code units, bytes, or a platform's own weighted count.
  2. Do spaces and line breaks count, and as how many?
  3. Whose counter decides? If it is not yours, test in theirs.
  4. Does the text contain emoji, accents or non-Latin scripts? If so, the units above will not agree.
  5. Was any of it pasted from somewhere else? If so, check for characters you cannot see.

The Character Counter answers the first and fourth for any text you paste: it shows visible characters as the main figure and code points, UTF-16 code units and UTF-8 bytes under Advanced statistics. Nothing you paste is uploaded.