CLAUDE WATERMARK REMOVER · PRACTICAL TEST
Does the cleaner remove every Unicode format character?
No. Our Unicode property tests retain Cf characters U+200D and U+200E. They remove U+200B and U+034F, although U+034F is a mark rather than a Cf character.
Open the Claude text cleaner · Full measured data
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. File API and event-lifecycle tests include an additional stage described in the analysis. We make no detector-score or statistical-watermark removal claim.
| Fixture and mode | Input string and code points | Output and cleaner status | Observed before / after |
|---|---|---|---|
| Cf selected direct string / keep / invisible true | "AB"U+0041 U+200B U+0042 | "AB"Removed 1 invisible character | {"format":["U+200B"],"nonspacingMarks":[]}{"format":[],"nonspacingMarks":[]} |
| Cf retained joiner direct string / keep / invisible true | "AB"U+0041 U+200D U+0042 | "AB"No selected invisible characters found | {"format":["U+200D"],"nonspacingMarks":[]}{"format":["U+200D"],"nonspacingMarks":[]} |
| Cf retained direction direct string / keep / invisible true | "AB"U+0041 U+200E U+0042 | "AB"No selected invisible characters found | {"format":["U+200E"],"nonspacingMarks":[]}{"format":["U+200E"],"nonspacingMarks":[]} |
| Mn selected direct string / keep / invisible true | "A͏B"U+0041 U+034F U+0042 | "AB"Removed 1 invisible character | {"format":[],"nonspacingMarks":["U+34F"]}{"format":[],"nonspacingMarks":[]} |
Category membership and selection are separate
The observer uses Unicode property escapes to list format characters and nonspacing marks in each input. U+200B appears in the format list and is removed. U+200D and U+200E also appear in that list, but remain after cleanup. U+034F appears in the nonspacing-mark list and is removed. Thus the homepage selection is neither all Cf characters nor only Cf characters. The table reports actual property membership from the recorded runtime alongside the independent cleaner output. This question concerns coverage of a character category, not how removing a marker changes the meaning of a user-supplied regex pattern.
A category does not decide whether editing is correct
Unicode general categories are descriptive properties, not a universal deletion policy. A retained joiner or direction mark may serve a valid text function. Conversely, a selected mark can be present even if a Cf-only scan would not list it. The five-entry homepage map names its chosen characters directly. We do not infer a complete set of invisible glyphs from either category: rendering depends on sequences, fonts and context. The tests contain only these four synthetic examples and do not implement the full Unicode default-ignorable property or a document-format validator.
Inspect named characters in their sequence
Choose an inspector that identifies the specific code points relevant to your destination and retain the original. If you use a category-based search, label what that search covers and verify whether the character you care about belongs to it. Avoid replacing the homepage map with a broad category deletion without a text policy and sequence review. Compare the resulting value in the actual application after a targeted edit. The saved property lists and removal results explain these examples; neither a no-findings status nor an empty Cf list proves absence of every invisible character or any statistical text watermark.
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.cjsReference and next check
Unicode general categories 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.