Zerowidth CleanerAll measured guides

CLAUDE WATERMARK REMOVER · PRACTICAL TEST

Will cleaning Base64 text remove a hidden character inside it?

No in our valid Base64 fixtures. Encoded ASCII stays unchanged; decoding still exposes U+200B. A literal U+200B outside the payload is removed, which is a different layer.

Tested October 6, 2026 · v24.19.0 · 3 measured runs

Open the Claude text cleaner · Full measured data

Code-point comparison for Encoded hidden payload

Measured inputs and outputs

These are locally constructed test strings, not evidence that Claude inserts these characters. We executed the saved homepage script snapshot with a minimal DOM harness and compared exact strings. The invisible-checkbox state and dash mode appear in each row. The observations below test this page's specific question. We make no detector-score or statistical-watermark removal claim.

Before and after observations; full code points and strings are in the JSON download.
Fixture and modeInput string and code pointsOutput and cleaner statusObserved before / after
Encoded hidden payload
direct string / keep / invisible true
"QeKAi0I="
U+0051 U+0065 U+004B U+0041 U+0069 U+0030 U+0049 U+003D
"QeKAi0I="
No selected invisible characters found
{"decoded":"A​B","decodedCodepoints":["41","200b","42"],"encodedCharacters":8}
{"decoded":"A​B","decodedCodepoints":["41","200b","42"],"encodedCharacters":8}
Encoded plain payload
direct string / keep / invisible true
"QUI="
U+0051 U+0055 U+0049 U+003D
"QUI="
No selected invisible characters found
{"decoded":"AB","decodedCodepoints":["41","42"],"encodedCharacters":4}
{"decoded":"AB","decodedCodepoints":["41","42"],"encodedCharacters":4}
Marker outside payload
direct string / keep / invisible true
"QUI=​"
U+0051 U+0055 U+0049 U+003D U+200B
"QUI="
Removed 1 invisible character
{"decoded":"AB","decodedCodepoints":["41","42"],"encodedCharacters":5}
{"decoded":"AB","decodedCodepoints":["41","42"],"encodedCharacters":4}

Inspect the payload and wrapper independently

Our first fixture is produced by encoding the UTF-8 bytes for A, U+200B and B. It contains no literal selected character at the input layer, so cleaning preserves its Base64 spelling. Decoding the result still returns the hidden character. The plain AB reference also remains unchanged and decodes to AB. The third fixture appends a literal U+200B to the plain encoded string: the cleaner deletes that appended marker. These outcomes distinguish a marker in decoded content from one in the wrapper string.

Decoder behavior belongs to the recorded runtime

The observer uses Node Buffer, whose Base64 decoder is permissive for some non-alphabet input. The third fixture records that runtime result; it does not demonstrate acceptance by a strict API. Neither the cleaner nor the harness authenticates the payload, recognizes an attachment type or checks a signature. Decoding arbitrary Base64 as UTF-8 may lose information when the payload is binary. We encoded known text ourselves and tested these three inputs only, without transferring or opening a remote payload.

Decode only when the format permits it

Keep the encoded original and identify the declared content type. For known UTF-8 text, decode to a working copy and inspect that copy before a selective edit. If editing is required, re-encode through the same format and verify the destination. Do not edit encrypted, compressed or signed content based on visual similarity. This page provides a representation test, not a generic Base64 validator or a watermark decoder. The homepage processes the string presented to it and performs no Base64 decoding.

Reproduce this test

Save reproduce.cjs and tested-app.js in the same folder. Run the command below with Node.js. The harness prints its runtime, script SHA-256 and every measured row. Compare those rows with the original record. Using a newer script or runtime creates a new experiment; retain the version information with your rerun.

node reproduce.cjs

Reference and next check

Node.js Buffer Base64 encoding provides the relevant primary definition. The table and fixture analysis are original measurements. For broader inspection, use our Unicode inspector. Read the scope distinction before interpreting cleanup as a watermark result.