Debug & Review · LOCAL TOOL

Invisible Character Inspector

Inspect text for selected invisible, spacing, and bidirectional control characters. Each finding includes a Unicode code point, UTF-16 offset, line, and code-point column.

Runs in this page
No API call
WORKSPACEINPUT → RESULT
01

Your input

LOCAL
Invisible Character Inspector inputs
02

Result

Run the tool to see a result.

Your result will appear here. Input is not saved.

Browser-side processingNothing is sent to a tool API.

WHY THIS TOOL EXISTS

A focused job, not a black box.

The report makes hidden characters locatable while keeping the original input untouched. Its warning explains why a joiner can be meaningful in an emoji or a writing system.

How to use it

  1. Paste the text whose spacing or direction seems unexpected.
  2. Locate flagged code points using line and column coordinates.
  3. Decide whether each character is intentional in the source context.

TRY A WORKING EXAMPLE

Start with known input.

Load this sample into the workspace, run the tool, and compare the result shown below.

Show sample input
{
  "source": "const name = \"ready\";\nzero​width\n‮review"
}

Expected sample result from the local tool

3 flagged character(s).

{
  "utf16Units": 40,
  "codePoints": 40,
  "findings": [
    {
      "codePoint": "U+00A0",
      "name": "NO-BREAK SPACE",
      "utf16Offset": 5,
      "line": 1,
      "codePointColumn": 6
    },
    {
      "codePoint": "U+200B",
      "name": "ZERO WIDTH SPACE",
      "utf16Offset": 26,
      "line": 2,
      "codePointColumn": 5
    },
    {
      "codePoint": "U+202E",
      "name": "BIDIRECTIONAL CONTROL",
      "utf16Offset": 33,
      "line": 3,
      "codePointColumn": 1
    }
  ]
}

Flags are review hints. Joiners and direction marks can be required for legitimate writing and emoji; no characters are removed.

LIMITS AND INTERPRETATION

What the result cannot tell you.

A selected character inventory, not a complete Unicode security or confusable-character scanner. Columns count code points, not visible grapheme clusters. Legitimate joiners and direction controls need human review.

Inputs are processed in this page and are not written to local storage.