An invisible character detector finds the hidden Unicode code points — zero-width spaces, non-breaking spaces, byte order marks, soft hyphens, and bidirectional controls — that quietly break SMS segmentation, sender IDs, and form validation. Paste your text below for a live scan, then strip every hidden character with one click.
An invisible character detector is a utility that scans every code point in a string and flags the Unicode characters that have no visible glyph on screen. These “ghost” characters include zero-width spaces (U+200B), word joiners (U+2060), non-breaking spaces (U+00A0), the byte order mark (U+FEFF), soft hyphens (U+00AD), and bidirectional formatting controls such as U+202A–U+202E and U+2066–U+2069. They are invisible when you read the text, but they are very real to an SMS encoder, a carrier filter, or a validation library.
This tool gives you a complete, quotable answer: it lists each detected character by its exact codepoint
(for example U+200B), its official Unicode name, how many times it appears, and the position
where it first occurs. smsroute's invisible character detector then lets you remove them in a single action
so the cleaned text is safe to send.
The detector iterates through your input character by character, comparing each code point against a curated list of invisible and zero-width Unicode values. For every match it records the codepoint, the Unicode name, a running count, and the first index. The total count appears in a badge above the results table so you always know at a glance whether your text is clean.
When you click Clean text, the tool removes every detected invisible character except normal spaces (U+0020). Non-breaking spaces (U+00A0) and narrow no-break spaces (U+202F) are converted to regular spaces so your wording and line breaks stay intact. The result appears in a second box, ready to copy straight into your SMS campaign, API request, or sign-up form.
Invisible characters usually enter your text through copy-paste from Microsoft Word, Google Docs, web pages, or AI-generated content. A single zero-width space or word joiner can force your entire SMS out of GSM-7 and into 16-bit UCS-2 encoding. GSM-7 fits 160 characters per segment; UCS-2 fits only 70 characters per segment. That means a 160-character message can suddenly bill as three segments instead of one — tripling the cost with no visible change to the reader.
Beyond billing, hidden control characters create real delivery problems. Alphanumeric sender IDs must be plain ASCII, so a stray control character can get a sender ID rejected by carriers. DLT (Distributed Ledger Technology) filtering systems in markets like India may flag or block messages containing unexpected control characters. Invisible characters also break form validation, OTP comparisons, plagiarism checkers, and AI content detectors. Auditing text with an invisible character detector before you send is the fastest way to avoid all of these failures.
The detector recognizes the full range of problematic hidden code points, including:
Most code editors have a built-in mode that reveals hidden characters. In VS Code, enable
editor.renderWhitespace: all and editor.renderControlCharacters: true. In Sublime
Text, choose View > Show Symbols > Show All Characters. These views help you spot a problem
locally, but for SMS you should still run the text through an invisible character detector, because a
zero-width space will not show up even in “show whitespace” mode in every editor.
The safest workflow is to normalize every message before it reaches the carrier. Start by pasting the text into this detector and clicking Clean text. Then verify the segment count with our SMS character counter, and if you need GSM-7 compatibility, run the result through our SMS text transformer. For high-volume campaigns, the same normalization can be automated through the smsroute SMS API so no hidden character ever reaches a handset.
Developers integrating directly can validate payloads in the API documentation and estimate cost per destination with the SMS cost estimator before committing credits.
Invisible characters are Unicode code points with no visible glyph — zero-width spaces, non-breaking spaces, word joiners, byte order marks, soft hyphens, and bidirectional controls. They usually enter text through copy-paste from Word, Google Docs, or AI-generated content and can silently force an SMS into 16-bit UCS-2 encoding.
One or more invisible characters, such as a zero-width space (U+200B) or non-breaking space (U+00A0), flips the message from GSM-7 (160 chars/segment) into UCS-2 (70 chars/segment). Use our SMS character counter to confirm the segment count before you send.
Most carriers preserve them, but some strip or replace certain control characters. The safest approach is to remove them before sending: click Clean text above, then run the result through our SMS text transformer for GSM-7 compatibility.
Yes. Alphanumeric sender IDs must be plain ASCII, so a hidden control character can get a sender ID rejected by carriers. The same hidden characters break form validation, OTP comparisons, and content detectors — which is why auditing text with an invisible character detector matters beyond billing.
Not inherently — most appear from ordinary copy-paste or text processing. But they can be used to bypass filters, hide text in code, or manipulate character counts, so you should always inspect text from untrusted sources before sending it.
It detects U+200B (ZWSP), U+200C (ZWNJ), U+200D (ZWJ), U+FEFF (BOM), U+00A0 (NBSP), U+00AD (soft hyphen), U+2060 (word joiner), U+180E (Mongolian vowel separator), U+2000–U+200A (various spaces), U+202A–U+202E (bidi controls), U+2066–U+2069 (bidi isolates), U+034F (combining grapheme joiner), and the variation selectors U+FE00–U+FE0F.
Paste the message into this detector, click Clean text, then verify the segment count with the SMS character counter. For production volume, normalize payloads automatically through the smsroute SMS API so no hidden character reaches a carrier.
Need to send clean, reliable SMS at scale? Try smsroute for direct carrier routes across 149 countries.
Sign up free, get $5 in credits, and route your first message through direct carrier connections — no KYC, crypto-friendly, 149 countries covered.
No credit card required. 99.99% delivery across tier-1 routes.