Why do character counts differ between tools?
Because "character" can mean three things: bytes (what a database column or an HTTP body limit measures), code points (what most programming languages count) or grapheme clusters (what a person sees — an emoji with a skin tone, or an Arabic letter with its diacritics, is one grapheme but several code points and even more bytes). Unicode defines grapheme and word boundaries in UAX #29; a length validation that counts one way in the browser and another way on the server will accept or reject different input.
How to use Character Counter
- Type or paste the text.
- Watch the bars: blue is within the limit, amber means 90% or more of it is used, red is over.
- Set a custom limit for your own field or API.
Character Counter features
- Characters with and without spaces, words, lines, UTF-16 units and UTF-8 bytes
- Progress bars for SMS, X/Twitter, meta title and description, Instagram, LinkedIn, YouTube and git subjects
- Automatic GSM-7 vs Unicode SMS detection (160 vs 70 characters)
- Custom limit and choice of counting unit (visible characters, UTF-16 units or bytes)
- Live update as you type
Character Counter example
Check a tweet
Input:
Mutqan Tools: free developer & QA utilities that run in your browser 🚀Output:
70 characters · X/Twitter 70 / 280 (210 left) · SMS (Unicode) 71 / 70 (over by 1)Frequently asked questions about Character Counter
Which limits are built in?
SMS (160 GSM-7 or 70 Unicode), X/Twitter posts (280), meta title (60), meta description (160), Instagram captions (2,200), LinkedIn posts (3,000), YouTube titles (100) and git commit subjects (72), plus a custom limit you set.
Why does the SMS limit change to 70?
If the text contains any character outside the GSM-7 alphabet (for example Arabic letters or any emoji), carriers switch to UCS-2 encoding and a single segment holds only 70 UTF-16 code units, so an emoji such as 🚀 counts as two. The SMS bars always count in the encoding's own units, whatever the "Count by" setting; in GSM-7 the characters ^ { } \ [ ] ~ | € each take two of the 160 positions.
How should I count characters for Twitter/X?
X counts most characters as 1 but CJK characters as 2 and URLs as 23. This tool counts visible characters; use the "UTF-16 units" mode for a stricter estimate.
Does the count include spaces and line breaks?
The main count does; a separate figure excludes all whitespace. Lines are counted by line breaks.
References
- UAX #29: Unicode Text SegmentationHow text is divided into grapheme clusters, words and sentences — why a "character" count can differ from a code-point or byte count.
- UAX #15: Unicode Normalization FormsThe NFC, NFD, NFKC and NFKD forms — the reason two visually identical strings can compare unequal until normalised.
- RFC 3629: UTF-8, a transformation format of ISO 10646How code points are encoded as one to four bytes in UTF-8, and which byte sequences are invalid.