Zerowidth CleanerMeasured guides

CLAUDE WATERMARK REMOVER · DESTINATION TEST

Does the utf-16 decoder label infer the order of unmarked bytes?

The measured utf-16 decoder treats these unmarked big-endian bytes as little-endian; explicit utf-16be yields AB.

Tested 1 November 2026 · Synthetic fixtures · Minimal DOM

What the test establishes

The byte fixture is constructed after cleaning and deliberately has no byte-order mark. The generic decoder produces different characters from the explicit big-endian decoder. This isolates a decoding contract rather than a hidden-character detection failure. A file importer should obtain the actual encoding contract before decoding, since running a character cleaner on already misdecoded text cannot infer which original byte order was intended.

Reproduce the observation

Save tested-app.js and reproduce.cjs together, then run node reproduce.cjs. Compare its output with the recorded observation. The harness executes the actual homepage callback in a minimal DOM and records its resulting field values and method calls. Destination operations run in Node.js; the homepage DOM is a controlled substitute. Runtime: v24.22.1. No submitted text or genuine Claude output is used.

{
  "cleaned": "AB",
  "bytes": [
    0,
    65,
    0,
    66
  ],
  "defaultDecoded": "䄀䈀",
  "explicitDecoded": "AB"
}

Capability boundary

The local Node TextDecoder is measured. The homepage file loader and automatic encoding detection in unrelated applications are not tested.

This Claude watermark remover edits a small selected character set. These callback observations do not establish authorship, detector scores, statistical-watermark removal or end-to-end browser behavior. For real work, keep the original and compare the exact result at its destination.

Primary material and next step

The tested first-party source snapshot and complete harness are the primary material for this page. For broader scope, read invisible Unicode versus AI watermarks, or return to the cleaner.