AI Watermark Check

Warum KI-generierter Code bricht

Ein Linter meldet einen Fehler in einer Zeile, die einwandfrei aussieht. Ein JSON-Payload scheitert an der Validierung, obwohl das Feld exakt zum Schema passt, gleiche Länge, gleiche Zeichen. Der Fehler steckt selten in der Logik. Er sitzt unsichtbar zwischen zwei Buchstaben, und er kam dorthin, weil der Code aus einem Chat-Fenster kopiert wurde.

Aus einer KI-Chat-Oberfläche kopierter Code trägt oft unsichtbare Unicode-Zeichen mit sich, Zeichen mit Nullbreite, Verbinder, geschützte Leerzeichen, Reste davon, wie die Oberfläche ihre Antwort als typografisches HTML darstellt. Kein Wasserzeichen, niemand hat sie absichtlich eingefügt. Sie sind in jedem normalen Editor unsichtbar, deshalb wirken die Syntaxfehler, verfälschten Zeichenlängen und fehlgeschlagenen API-Aufrufe so unerklärlich. Text unten einfügen, und jedes einzelne davon wird sichtbar.

Mehr: Funde, Röntgenansicht und Optionen

Röntgenansicht

Ihr Text mit jedem versteckten Zeichen als beschriftetem Chip. Für den Unicode-Namen den Mauszeiger darüber halten.

Was diese Zeichen wirklich sind

Echte, reguläre Unicode-Codepunkte, keine Schadsoftware und kein absichtliches Signal. Jedes hat anderswo eine legitime Aufgabe, nur nicht in einem Variablennamen oder einem SQL-String.

ZeichenCodepunktEigentliche AufgabeWirkung im Code
Zeichen mit NullbreiteU+200BWeicher Umbruchpunkt in dichtem TextZerteilt Bezeichner, bricht Regex-Treffer
Nullbreiten-VerbinderU+200DVerschmilzt Emoji-SequenzenVerändert die Zeichenlänge unbemerkt
WortverbinderU+2060Verhindert einen ZeilenumbruchVerfälscht Tokens beim Diff oder Hash
Geschütztes LeerzeichenU+00A0Hält Zahl und Einheit zusammenSieht aus wie ein Leerzeichen, ist keins; Validatoren lehnen es ab

Woher das kommt, und was es nicht ist

Kein Fingerprinting, kein bewusstes Signal des Modells. Eine Chat-Oberfläche rendert ihre Antwort als typografisches HTML, wie jede gut gebaute Webseite: geschützte Leerzeichen halten Einheiten an Zahlen, weiche Umbrüche sitzen in langen Strings. Markieren und Kopieren übernimmt diese Typografie mit, ein Nebeneffekt der Darstellung, kein Zeichen, das das Modell absichtlich hinterlässt.

Und ein echtes statistisches Wasserzeichen, wie es Anthropic und Google seit diesem Jahr einsetzen, funktioniert völlig anders: Dieses Signal steckt in der Wortwahl des Modells, nicht in einem Zeichen, das sich auswählen ließe. Was Code bricht, ist ein separates, viel banaleres Problem, und anders als ein statistisches Wasserzeichen lässt es sich vollständig beheben.

Wo das wirklich zuschlägt

Ein Linter scheitert an einer fehlerfreien Zeile

Meist ein Zeichen mit Nullbreite mitten in einem Bezeichner, das für den Parser ein Token in zwei zerteilt.

Ein CSV- oder Datenbank-Import verdirbt eine Zeile

Ein verirrtes Zeichen macht aus einem sauberen Zahlenfeld Text oder sprengt eine Längenbegrenzung, die niemand absichtlich gesetzt hat.

Ein API-Aufruf liefert 400 ohne erkennbaren Grund

Strenge JSON-Validatoren verzeihen unerwartete Codepunkte in einem String-Wert nicht, und der Request-Body sieht in jedem Tool völlig normal aus.

Häufige Fragen

Sind diese Zeichen ein KI-Wasserzeichen?

Nein. Kein großer Anbieter nutzt unsichtbare Zeichen als Wasserzeichen, ein simpler Bereinigungsschritt würde es sofort entfernen. Es ist typografischer Abfall aus der Chat-Darstellung, kein absichtliches Signal.

Zerstört die Bereinigung die Formatierung meines Codes?

Nein. Tabs, Zeilenumbrüche und Einrückung bleiben exakt erhalten. Nur unsichtbare Codepunkte ohne sichtbare Bedeutung werden angefasst, und ungewöhnliche Leerzeichen werden ersetzt statt gelöscht.

Mehr erfahren