Favorite places of your favorite city
Home
Add to preferred sources on Google

SMS Character Counter & Segment Calculator

See how your message is encoded, where its segments end and what it may cost. Your text stays in your browser.

Your SMS draft

User-perceived characters: 0

Advanced settings

The alternate profile reserves a larger header. Twilio documents these smaller capacities for multipart toll-free SMS to the US and Canada; they are not universal.

Live estimate

0

segments

GSM-7

0 septets

160 of 160 septets available in the current segment

Common · 153 / 67

Estimate for the selected model. Your provider may handle the message differently.

Your draft and cost inputs stay in this browser tab. Nothing is uploaded or saved.

Segment preview

Boundaries preserve the original text, including line endings. Send the complete original through your provider; do not send these previews separately.

Add a message to see its segments.

Review substitutions

Select each change to preview it. Punctuation replacements may alter typography or meaning. The original draft is never changed.

No curated substitutions are available. Languages, names and emoji are not transliterated.

Estimate campaign cost

Enter your own price to calculate an estimate.

Segments × recipients × price per segment. Round only the final total to the currency’s decimal places.

No exchange conversion, taxes or surcharges are included. Retries, failed delivery, destination, sender type, carrier and contract terms can change the bill.

SMS encoding capacities

EncodingSingle partMultipart, per part
GSM-7
septets
160153
Unicode
UTF-16 units
7067

In the common profile, 160 GSM septets fit one SMS; 161 require concatenation. Every part then reserves a UDH, leaving 153 septets or 67 UTF-16 units. GSM extension characters use two septets. CR and LF each consume one unit; CRLF consumes two. Line endings are never normalized.

Providers commonly call Unicode SMS UCS-2. Here it is modeled with UTF-16 units: 🙂 uses two, while a joined emoji may use many. The supporting character count measures graphemes, not transport units.

How to check an SMS

  1. Paste your message. Auto chooses GSM-7 when every symbol fits its alphabet; otherwise it uses Unicode.
  2. Read the segment estimate and inspect the characters that affect encoding. Open Advanced settings only if your gateway uses a different profile.
  3. Review the exact segment previews. Optionally select punctuation substitutions or enter your own price and recipient count.

Features

  • Shows GSM-7 or Unicode encoding and segment estimates
  • Highlights characters that change encoding
  • Previews segments and optional cost estimates
  • Shows room left in the current segment
  • Offers alternative concatenation profiles in advanced settings
  • Suggests punctuation substitutions without changing your draft automatically

Use cases

  • Find out why a short SMS became two segments
  • Estimate a campaign using your own price
  • See how emoji or smart quotes affect SMS length
  • Compare wording to reduce the estimated segment count

Understanding SMS length

GSM-7 is a specific alphabet, not ASCII. It includes é and ñ but not every accented letter. Braces, brackets, the euro sign and several other extension characters need an escape and therefore use extra space.

Привет, 你好 and مرحبا naturally require Unicode in this model. This is normal language support, not a writing error. Even one smart quote in an otherwise GSM-compatible message changes the encoding of the entire draft.

A code point identifies a Unicode symbol; UTF-16 may represent it with one or two code units. A grapheme is a perceived character that can combine multiple code points. For example, e plus a combining acute accent and a family emoji each look like one character but occupy several units.

Long SMS messages use a User Data Header (UDH) to identify and reassemble parts. Header space reduces the payload of every part. Preview boundaries preserve combined characters and may leave space that a gateway would use differently.

Privacy and model limitations

Drafts, prices and recipient counts are held only in memory in this tab. Reloading clears them. Copying happens only when you choose a copy action. This tool neither sends SMS nor asks for a phone number.

National-language locking and single-shift tables, binary payloads, application ports, appended opt-out text, sender signatures, transliteration and carrier policies are outside this model. A provider may normalize, replace, append, reject or segment content differently. MMS and RCS are not calculated.

Use the price from your provider’s agreement for the destination and sender type. Currency selection changes display only. The final estimate is not a quote or a guarantee of the bill.

SMS counter questions

An emoji outside GSM-7 makes the whole message Unicode in Auto mode. Many emoji also require a surrogate pair, so one visible symbol can occupy more than one UTF-16 unit.

Sometimes a typographic quote or non-breaking space causes the switch. Review substitutions offers only explicit punctuation and space changes. It never transliterates languages, names or emoji, and it leaves your original untouched.

No. Normally you send the full original text through your provider. Its concatenation header lets the receiving phone reassemble the parts. The preview adds no numbering or separators to your message.

The selected header model, provider-added text, delivery retries, destination, sender type, taxes and contract terms may differ. The calculator uses only the segment estimate, recipients and price you enter.

No. The tool keeps your inputs in this tab’s memory and does not put them in the URL or upload them. Only an explicit copy action writes text to your clipboard.

Sources and verification

Sources checked: 2026-09-13

JSON to YAML

Convert JSON to YAML locally while preserving number text and quoted strings; copy or download the complete result.

Open tool — JSON to YAML

YAML to JSON

Convert one YAML document locally to JSON with exact number text and bounded aliases, then copy or download the complete result.

Open tool — YAML to JSON

HTML to Markdown

Convert pasted or local HTML into Markdown, review conversion notes, and copy or download the result.

Open tool — HTML to Markdown

JavaScript Regex Tester

Test a JavaScript pattern locally and inspect matches, captures, and UTF-16 positions.

Open tool — JavaScript Regex Tester

Markdown to HTML

Convert a Markdown draft to an HTML fragment, inspect the source and inert preview, then copy or download it.

Open tool — Markdown to HTML

Text Sorter

Sort lines alphabetically by a chosen language or by Unicode code point, keeping duplicates, blank rows and complete line contents.

Open tool — Text Sorter

Remove Duplicate Lines

Keep the first copy of each exact text line, preserving order, significant spaces and blank rows, then copy or download the result.

Open tool — Remove Duplicate Lines

Text Diff Checker

Compare two drafts locally, with exact whole-line changes, visible whitespace rules and clear final-newline handling.

Open tool — Text Diff Checker

Case Converter

Convert text to uppercase, lowercase, capitalized words or sentence case with explicit letter rules.

Open tool — Case Converter

HTML Entity Encoder/Decoder

Encode or decode literal HTML references with explicit context, Unicode options and LF output, without parsing or rendering markup.

Open tool — HTML Entity Encoder/Decoder

Markdown Table Generator

Edit a small literal-text table, set alignment and copy GFM Markdown or import tab-separated text.

Open tool — Markdown Table Generator

Query String Parser & Builder

Edit ordered URL parameters, retain repeated names and copy a normalized query or HTTP(S) URL.

Open tool — Query String Parser & Builder

URL Encoder & Decoder

Convert a UTF-8 URL component or form value with explicit space and plus rules, then copy or download the result.

Open tool — URL Encoder & Decoder

Base64 Encoder & Decoder

Encode UTF-8 text as standard or URL-safe Base64, or decode either format with clear errors and complete text output.

Open tool — Base64 Encoder & Decoder

XML Formatter

Check namespace-aware XML 1.0, format or compact locally, and copy or download UTF-8 output.

Open tool — XML Formatter

JSON Formatter & Validator

Check JSON syntax, format or minify locally, and copy or download output while preserving original data tokens.

Open tool — JSON Formatter & Validator

Social Media Character Counter

Check platform-specific limits and split posts without losing text.

Open tool — Social Media Character Counter

Character Counter

Count characters, words, sentences and paragraphs. Check word density, reading time and UTF-8 size, all in your browser.

Open tool — Character Counter

Text Size Calculator

Compare text encodings and payload sizes in your browser.

Open tool — Text Size Calculator

PDF Text Cleaner

Fix line breaks and spacing in text copied from a PDF. Preserve your original and review ambiguous hyphens before copying the cleaned text.

Open tool — PDF Text Cleaner

Fancy Text Converter

Convert supported fancy Unicode letters to normal text locally. Keep case, accents, emoji and your original text.

Open tool — Fancy Text Converter

Garbled Text Fixer

Fix garbled text and repair broken accents with a browser-based mojibake fixer. Review each possible UTF-8 reversal before applying it.

Open tool — Garbled Text Fixer

Gmail Clipping Checker

Measure email HTML bytes in UTF-8, compare them with an advisory 102,000-byte Gmail reference, and inspect size contributors locally.

Open tool — Gmail Clipping Checker
View all tools in this category