Local Unicode compatibility tool

Invisible text watermark

Add a short, removable hidden marker to plain text, or read an InvisiChar IVC1 marker back. It is not proof of ownership. Your text and marker stay in this browser.

Task

Options

0 UTF-16 units · 0 code points · 0 lines

Marker bytes
0
Frame overhead
46
Max carrier
199,954
Remaining
199,954

Enter a non-empty marker of at most 64 UTF-8 bytes.

Text, output, marker payloads, and context stay in this browser. Copy only happens when you choose it. Other platforms may display, reorder, normalize, or strip hidden characters.

Add · read back · remove

A removable marker, not proof of ownership

An invisible text watermark here is a short hidden marker added to the end of plain text without changing its existing visible words. You can read it back or remove it later. InvisiChar uses its own public IVC1 format: it is not a universal hidden-text decoder and cannot extract every watermark made by another tool.

IVC1 is public and removable. Its CRC detects accidental corruption only. It is not encryption, a signature, evidence of authorship or ownership, an identity system, or a tracking guarantee. Anyone who knows the format can read, remove, replace, or recreate a marker.

Try adding, reading, and removing a marker

  1. Add: enter Hello in Carrier text and demo in Short marker, then click Add hidden marker. The marked text keeps the visible word Hello and adds one hidden marker at the end.
  2. Read back: click Verify marker to open Extract and recover demo. For text copied earlier, paste the complete marked text into Text containing marker and click Extract marker.
  3. Remove: from Extract, click Inspect unknown characters to inspect that text. Choose Review removal options, select the IVC1 finding in Clean, then click Apply 1 selected change and confirm the warning. For this example, the cleaned output is exactly Hello.

Carrier: Hello

Marker: demo

Visible result: Hello plus one hidden terminal IVC1 frame

Compatibility limits

Mark accepts one non-empty marker of at most 64 UTF-8 bytes. Extract returns it only when exactly one complete, supported IVC1 frame is at the absolute end and passes its length, UTF-8, and CRC checks. Damaged, multiple, unsupported, or non-terminal markers do not return a best-effort or partial result. If someone sends you hidden text in an unknown format, Inspect can check supported characters, but Extract cannot decode an arbitrary message.

Copying through another editor, messaging service, sanitizer, normalizer, or publishing system may expose, reorder, strip, or otherwise damage format characters. A successful local round trip does not guarantee survival elsewhere. Adding a frame after otherwise valid JSON also makes the complete text invalid JSON, so the tool requires an explicit warning before that operation.

Learn why hidden Unicode needs context before removal.

Sources and format boundary

IVC1 itself is an InvisiChar V1 transport format, not a Unicode standard or security protocol.

Last reviewed: 2026-09-01