Processed locally in your browser β not uploaded
Unicode & BiDi Security Scanner
Inspect identifiers, domains, filenames, source code, and multilingual text for invisible format characters, bidirectional controls, mixed writing systems, and common cross-script confusables. See every code point and its exact position without uploading the text.
- β’ Mixed scripts detected: Latin, Cyrillic. Mixed-script identifiers deserve review.
- β’ 1 visually confusable character detected.
| Position | Glyph | Code point | Script | Finding |
|---|---|---|---|---|
| 0 | c | U+0063 | Latin | safePrintable character: No known identifier-security concern. |
| 1 | o | U+006F | Latin | safePrintable character: No known identifier-security concern. |
| 2 | n | U+006E | Latin | safePrintable character: No known identifier-security concern. |
| 3 | s | U+0073 | Latin | safePrintable character: No known identifier-security concern. |
| 4 | t | U+0074 | Latin | safePrintable character: No known identifier-security concern. |
| 5 | U+0020 | Common | safePrintable character: No known identifier-security concern. | |
| 6 | p | U+0070 | Latin | safePrintable character: No known identifier-security concern. |
| 7 | Π° | U+0430 | Cyrillic | noticeVisually confusable character: Can resemble a (Latin). |
| 8 | y | U+0079 | Latin | safePrintable character: No known identifier-security concern. |
| 9 | p | U+0070 | Latin | safePrintable character: No known identifier-security concern. |
| 10 | a | U+0061 | Latin | safePrintable character: No known identifier-security concern. |
| 11 | l | U+006C | Latin | safePrintable character: No known identifier-security concern. |
| 12 | U+0020 | Common | safePrintable character: No known identifier-security concern. | |
| 13 | = | U+003D | Common | safePrintable character: No known identifier-security concern. |
| 14 | U+0020 | Common | safePrintable character: No known identifier-security concern. | |
| 15 | t | U+0074 | Latin | safePrintable character: No known identifier-security concern. |
| 16 | r | U+0072 | Latin | safePrintable character: No known identifier-security concern. |
| 17 | u | U+0075 | Latin | safePrintable character: No known identifier-security concern. |
| 18 | e | U+0065 | Latin | safePrintable character: No known identifier-security concern. |
| 19 | ; | U+003B | Common | safePrintable character: No known identifier-security concern. |
| 20 | U+0020 | Common | safePrintable character: No known identifier-security concern. | |
| 21 | / | U+002F | Common | safePrintable character: No known identifier-security concern. |
| 22 | / | U+002F | Common | safePrintable character: No known identifier-security concern. |
| 23 | U+0020 | Common | safePrintable character: No known identifier-security concern. | |
| 24 | p | U+0070 | Latin | safePrintable character: No known identifier-security concern. |
| 25 | \ | U+005C | Latin | safePrintable character: No known identifier-security concern. |
| 26 | u | U+0075 | Latin | safePrintable character: No known identifier-security concern. |
| 27 | 2 | U+0032 | Common | safePrintable character: No known identifier-security concern. |
| 28 | 0 | U+0030 | Common | safePrintable character: No known identifier-security concern. |
| 29 | 2 | U+0032 | Common | safePrintable character: No known identifier-security concern. |
| 30 | E | U+0045 | Latin | safePrintable character: No known identifier-security concern. |
| 31 | t | U+0074 | Latin | safePrintable character: No known identifier-security concern. |
| 32 | x | U+0078 | Latin | safePrintable character: No known identifier-security concern. |
| 33 | t | U+0074 | Latin | safePrintable character: No known identifier-security concern. |
| 34 | . | U+002E | Common | safePrintable character: No known identifier-security concern. |
| 35 | e | U+0065 | Latin | safePrintable character: No known identifier-security concern. |
| 36 | x | U+0078 | Latin | safePrintable character: No known identifier-security concern. |
| 37 | e | U+0065 | Latin | safePrintable character: No known identifier-security concern. |
How to use
- Paste an identifier, domain, filename, source-code fragment, or multilingual string.
- Review the overall risk summary, then inspect flagged code points and their UTF-16 positions.
- Confirm every invisible, bidirectional, mixed-script, or visually confusable character with the text's author.
Understanding the output
The scanner identifies Unicode controls, invisible format characters, common cross-script look-alikes, and mixed scripts. Character positions use JavaScript UTF-16 indexing so they map directly to browser and editor APIs.
Common issues & tips
- β’Arabic and Hebrew text legitimately uses right-to-left rendering; a warning is a review prompt, not proof of malicious content.
- β’The confusable mapping is deliberately focused and cannot replace the complete Unicode confusables data or a language-aware identifier policy.
Frequently asked questions
- Does a BiDi warning mean Arabic or Hebrew text is malicious?
- No. Right-to-left text is legitimate. The scanner highlights explicit formatting controls and mixed-script patterns so a reviewer can confirm whether they are expected in that context.
- Can this detect every Unicode look-alike?
- No. It detects high-risk controls and a focused mapping of common confusables. Apply a complete UTS #39 implementation and a product-specific identifier policy for security-critical registration systems.
- Is the inspected text uploaded?
- No. Code-point inspection and risk classification run entirely in your browser.
Related tools
Arabic Text Normalizer
Standardize Arabic text β diacritics, letter variants, spacing and numerals.
Arabic Regex Patterns
Copy and test JavaScript regex patterns for Arabic words, text, diacritics, Tatweel, digits, and mixed content.
Regex Tester
Test regular expressions against text with live match highlighting and capturing groups.