A draft can show 72 characters in a general counter but count as 34 on X. The key is to ask what is being counted. PiPi’s word counter reports Unicode code points, words, spaces, and UTF-8 bytes. Its progress bar compares one selected reference target at a time. It does not claim to reproduce every platform’s validation rule.
Worked example 1: a long URL in a short X post
Type Read this: https://example.com/this-is-a-very-long-path-that-keeps-going. The prefix has 11 characters and the URL has 61, so PiPi reports 72 raw characters. X says a posted URL counts as 23 characters, so this example weighs 11 + 23 = 34 in X’s usual post frame. A raw-character preset would falsely say 72 of the available characters were used; we removed the X preset rather than present that verdict.
The opposite problem occurs with CJK text: the published twitter-text configuration gives many CJK characters weight 2. A draft of 200 Korean syllables has 200 code points here but weighs 400 on X. Emoji sequences have their own parsing rules. Final confirmation belongs in X’s composer.
Worked example 2: one SMS segment is not a universal text limit
A basic GSM-7 segment has room for 160 septets (7-bit units), not always 160 visible characters. Twilio’s encoding explanation notes that extension symbols such as { use an escape plus the symbol: two units. UCS-2 has a different single-segment capacity, commonly described as 70 characters; concatenated messages have less room per segment.
Try two equally long drafts
In the English counter, paste AAAAAAAAAA eight times without spaces or line breaks. Replace it with {{{{{{{{{{ eight times. Compare the raw character and UTF-8 byte displays:
| Draft | Code points | UTF-8 bytes | GSM-7 septets |
|---|---|---|---|
80 copies of A | 80 | 80 | 80 |
80 copies of { | 80 | 80 | 160 |
The first two numeric columns describe these exact ASCII strings. The final column is source-based arithmetic, not a reading from our tool: 80 × 1 versus 80 × 2. This exercise does not send an SMS, test a carrier or measure a bill. Do not extend its counts to arbitrary emoji or language mixtures.
Clarification — October 13, 2026: The previous “up to 160 characters” wording omitted GSM-7 extension symbols. The raw total alone cannot establish segment fit. Only this SMS explanation was rechecked today; the X and Google source checks remain dated September 24.
PiPi’s UTF-8 byte count is not an SMS-segment counter. For a paid SMS campaign, confirm the encoding, segmentation, and charge in the sending provider before dispatch. That matters more than making a generic character total turn green.
Worked example 3: 155 is not a Google rule
Google states that meta descriptions have no fixed length limit. It may use text from the page rather than the description tag, and a displayed snippet is shortened as needed for the device and search context. A 155-character draft can still be cut or replaced; a longer description is not automatically invalid.
Use the counter to write a specific, readable summary of that page. Do not treat a green 155-character bar as a search-result preview. Check the actual search result when it becomes available.
A two-minute pre-publish check
- Count the draft here for a consistent raw baseline.
- Identify the destination’s real unit: words, code points, weighted characters, encoded bytes, or message segments.
- Verify the final text in the destination form, X composer, or SMS provider. For Google, review the actual snippet rather than a fixed character target.
The value of a counter is a transparent baseline. The value of an editorial workflow is knowing where that baseline stops.