Zerowidth CleanerAll measured guides

CLAUDE WATERMARK REMOVER ยท PRACTICAL TEST

Does this cleaner remove the joiners inside emoji?

The homepage preserves U+200D joiners, variation selectors and the tested flag tag sequence. Four emoji sequences retain identical code points; the fifth fixture loses only a stray U+200B beside the emoji. This is a bounded preservation test, not a test of every emoji.

Tested October 4, 2026 ยท v24.19.0 ยท 5 measured runs

Open the Claude text cleaner ยท Full measured data

Code-point comparison for Woman technologist

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. Invisible removal is enabled; the dash mode appears 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
Woman technologist
direct string / keep
"๐Ÿ‘ฉโ€๐Ÿ’ป"
U+1F469 U+200D U+1F4BB
"๐Ÿ‘ฉโ€๐Ÿ’ป"
No selected invisible characters found
{"codePointCount":3,"utf16Units":5,"joiners":1}
{"codePointCount":3,"utf16Units":5,"joiners":1}
Family sequence
direct string / keep
"๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ง"
U+1F468 U+200D U+1F469 U+200D U+1F467
"๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ง"
No selected invisible characters found
{"codePointCount":5,"utf16Units":8,"joiners":2}
{"codePointCount":5,"utf16Units":8,"joiners":2}
Heart with emoji selector
direct string / keep
"โค๏ธ"
U+2764 U+FE0F
"โค๏ธ"
No selected invisible characters found
{"codePointCount":2,"utf16Units":2,"joiners":0}
{"codePointCount":2,"utf16Units":2,"joiners":0}
England flag tag sequence
direct string / keep
"๐Ÿด๓ ง๓ ข๓ ฅ๓ ฎ๓ ง๓ ฟ"
U+1F3F4 U+E0067 U+E0062 U+E0065 U+E006E U+E0067 U+E007F
"๐Ÿด๓ ง๓ ข๓ ฅ๓ ฎ๓ ง๓ ฟ"
No selected invisible characters found
{"codePointCount":7,"utf16Units":14,"joiners":0}
{"codePointCount":7,"utf16Units":14,"joiners":0}
Emoji next to stray space
direct string / keep
"๐Ÿ‘ฉโ€๐Ÿ’ปโ€‹"
U+1F469 U+200D U+1F4BB U+200B
"๐Ÿ‘ฉโ€๐Ÿ’ป"
Removed 1 invisible character
{"codePointCount":4,"utf16Units":6,"joiners":1}
{"codePointCount":3,"utf16Units":5,"joiners":1}

What this test preserves

The technologist fixture contains three code points and five UTF-16 code units. The family fixture contains five code points and eight units. The heart includes U+FE0F. The flag uses a black flag followed by tag characters and a cancel tag. The first four inputs return exactly the same code-point sequence. They also report no selected invisible characters found, because these meaningful controls are outside our homepage removal set. The fifth fixture loses only the trailing U+200B and keeps the complete technologist sequence.

Why counting visible symbols is insufficient

One visible emoji can consist of several code points. Our result file therefore reports both code-point count and UTF-16 length, plus a joiner count. The measurements do not depend on whether the runtime can draw a colorful glyph. Unicode Technical Standard #51 describes emoji sequences, including joiners, presentation selectors and tag sequences. Removing all format characters indiscriminately would edit these structures; a narrow removal set provides a different behavior. We have measured the saved strings, not visual rendering on every phone or operating system.

Review before choosing a broader cleaner

If an emoji changes appearance after another tool, compare its sequence before and after that operation. Retain joiners and selectors unless the edit intentionally changes presentation. For a broken paste beside an emoji, isolate the accidental character rather than clearing the entire Unicode format category. A no-removal message does not mean the input contains no invisible code points: these fixtures deliberately contain some. Our homepage does not validate whether a sequence is standardized, diagnose font support or recover controls already removed elsewhere. Use the full character inspector when you need to inspect beyond the homepage deletion set.

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

Unicode emoji sequences 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.