Omnikit
DevFilesMoneyAll tools
Ctrl K
Dev toolsFile toolsMoney calculatorsAll tools
HomeDeveloper toolsInvisible Character Detector
EnglishالعربيةবাংলাDeutschEspañolFrançaisPolskiPortuguêsРусский

Invisible Character Detector

dev

Find zero-width spaces, odd spaces, bidi controls and lookalike letters, then clean them

Runs in your browser. Nothing you type is sent anywhere. Updated on 25 Oct 2026.

A hidden character detector finds Unicode characters that show nothing or pass for others: zero-width spaces (U+200B), no-break spaces, bidi controls, control codes and lookalike letters. Text pasted from a chatbot, web page or PDF can carry them. Paste it to see each one with its code point and name, then remove them in one click.

Next:
  • String Escape & Unescape Escape text for a JSON, JavaScript, Java, Python, SQL or CSV string, or unescape it

How to find hidden characters in text

1

Paste text into the Text box, or press Try an example.

2

Read the marked view: every hidden or lookalike character carries a label; hover it for its name.

3

Check the table for each character's position, code point, name and kind.

4

Tick which kinds to remove under Clean, then press Copy cleaned.

About the Invisible Character Detector

This detector finds characters you cannot see, or cannot tell apart, in pasted text. Each one is highlighted where it sits and listed with its position, its code point such as U+200B, its Unicode name and what it does. A one-click clean removes or replaces them, and you can choose which kinds to clean.

Five kinds are checked. Zero-width and invisible characters: zero-width spaces, joiners, word joiners, byte order marks, soft hyphens, and the tag and variation characters that can carry hidden text. Unusual spaces: no-break, thin, em and ideographic spaces and line separators, which look like ordinary spaces and break searches, CSV imports and exact comparisons. Bidirectional controls: overrides and isolates that reorder how text is shown; in source code they are the Trojan Source attack (CVE-2021-42574), where code reads one way in a review and runs another way. Control characters: codes such as NULL, ESCAPE and DELETE, plus the replacement character that marks text damaged by a wrong encoding. Lookalike letters: Cyrillic and Greek letters that match Latin ones, taken from Unicode's confusables data, and fullwidth or mathematical styled letters.

A Cyrillic or Greek letter is flagged only when it sits in a word that also has Latin letters, or when every letter of the word could pass for Latin, so ordinary Russian or Greek text is not reported. Some invisible characters are legitimate: the joiners inside emoji such as family groups, the emoji style selector, and the joiners that shape Devanagari, Bengali or Persian words. These are shown as benign and kept when cleaning.

What it does not do: check every one of Unicode's thousands of confusable pairs, judge whether a link is safe, or scan files. Everything runs in your browser. Related tools: Word Counter, Diff Checker, Regex Tester.

Frequently asked questions

Why does text from ChatGPT contain hidden characters?

Copied text keeps every character of its source, and a chatbot answer, a web page or a PDF can carry characters that show nothing. The U+202F NARROW NO-BREAK SPACE, for one, looks like an ordinary space but breaks a search or an exact match. Paste the answer here to see each one with its code point; that space is listed under unusual spaces. A hidden character proves nothing about who wrote the text.

How does the hidden character detector count what it finds?

Every character is sorted into one of 5 kinds and counted, and the count shows beside each kind's Clean box. The built-in example finds 22: 2 zero-width and invisible, 4 unusual spaces, 4 bidirectional controls, 0 control characters and 12 lookalike letters, plus 3 benign joiners in an emoji and a Hindi word that cleaning keeps. The table lists each one with its position, code point and Unicode name.

Why do two strings that look the same not match?

Usually one of them contains a character you cannot see: a zero-width space, a no-break space instead of a normal one, or a Cyrillic letter that looks Latin. Paste both strings here and the difference is highlighted with its code point, so you can clean it or fix the source that produced it.

What is a zero-width space?

U+200B is a character that marks a possible line break but takes up no width, so it is invisible. It often arrives by copying from websites, chat apps or PDFs. Inside a password, a coupon code or a spreadsheet cell it makes an exact comparison fail even though the text looks right.

What is a Trojan Source attack?

Published in 2021 as CVE-2021-42574, it hides bidirectional control characters such as RIGHT-TO-LEFT OVERRIDE (U+202E) in comments or strings. Editors then display the code in a different order from the one the compiler reads, so a reviewer approves code that behaves differently. These controls are marked in red here.

Will cleaning break emoji or Hindi text?

No. A zero-width joiner between two emoji, as in a family emoji, and the emoji style selector are marked benign and kept. So are joiners between letters of scripts such as Devanagari, Bengali and Persian, where they change how the letters combine. Only characters that serve no purpose there are removed.

How are lookalike letters detected?

The tool checks Cyrillic and Greek letters listed as confusable with Latin in Unicode's security data, such as U+0430, which looks exactly like a. They are flagged when the same word also has Latin letters, or when the whole word could pass for Latin. Fullwidth and styled mathematical letters are always flagged.

Is the text I paste sent anywhere?

No. The text is scanned in your browser and never uploaded or stored. That matters here because people often check passwords, API keys and private messages for hidden characters. Closing the page discards the text; only your choice of which classes to clean is remembered.

Still stuck? Ask about Invisible Character Detector and anybody who knows can answer. No account needed.

Common uses

  • Zero Width Space RemoverStrip zero-width spaces, joiners and byte order marks from pasted text
  • Homoglyph DetectorHomoglyph detector: Cyrillic, Greek and styled letters posing as Latin in names and links

Same job, other tools: Readability Checker – Flesch reading ease and grade level, with what to change · JSONPath Evaluator – Evaluate a JSONPath expression and get the matching values and their paths.

Related tools

All developer tools
Regex TesterTest JavaScript regular expressions with live highlighting and a plain-English explanationDiff CheckerCompare two texts side by side and see every added and removed lineJSON DiffCompare two JSON documents and list every added, removed and changed valueOpen Graph PreviewPaste a page and see the share card for Facebook, LinkedIn, X, WhatsApp and SlackKeyword Density and ReadabilityWord and phrase counts, densities, reading time and a Flesch readability scoreHTTP Status CodesEvery HTTP status code, what it means, when to send it and the RFC it comes fromUser-Agent ParserRead a user-agent string: browser, engine, OS, device type and whether it is a botJSONPath TesterRun RFC 9535 JSONPath queries on pasted JSON and see every match highlighted
Was this tool helpful?
Omnikit

Small jobs, done in your browser. Free, fast and private. Files are never uploaded.

Files

  • Compress Image
  • Image to PDF
  • Merge PDF
  • Compress PDF
  • PDF to Word
  • Word to PDF

Dev

  • JSON Formatter & Validator
  • Base64 Encode & Decode
  • JWT Decoder, Verifier & Encoder
  • Password Generator
  • UUID Generator
  • Unix Timestamp Converter

Money

  • SIP Calculator
  • EMI Calculator
  • GST Calculator
  • FD Calculator
  • PPF Calculator
  • Lumpsum Calculator
EnglishالعربيةবাংলাDeutschEspañolFrançaisPolskiPortuguêsРусский
GuidesQuestionsAboutHow we checkLaw library (beta)PrivacyTermsDisclosureContactMore: Exam practice (UGC NET Paper 1)Runs in your browser. Nothing is uploaded. © 2026 Omnikit (theomnikit.com)