AI Watermark Check

Dlaczego kod AI się psuje, i jak naprawić prawdziwą przyczynę

Linter zgłasza błąd w linii, która wygląda bez zarzutu. Payload JSON nie przechodzi walidacji na polu identycznym ze schematem, ta sama długość, te same znaki. Błąd rzadko tkwi w logice. Siedzi między dwiema literami, niewidoczny, i trafił tam, bo kod wkleiłeś z okna czatu.

Tekst skopiowany z interfejsu czatu AI często niesie niewidoczne znaki Unicode, spacje zerowej szerokości, łączniki, spacje nierozdzielające, pozostałość po tym, jak interfejs wyświetla odpowiedź jako sformatowany HTML. To nie znak wodny i nikt nie umieścił ich tam celowo. Są też całkowicie niewidoczne w zwykłym edytorze, dlatego powodują błędy składni, zepsutą długość stringów i nieudane wywołania API, których nie da się wytłumaczyć. Wklej kod do weryfikatora poniżej, a każdy z nich się ujawni.

Więcej: co znaleziono, widok rentgenowski i opcje

Widok rentgenowski

Twój tekst z każdym ukrytym znakiem pokazanym jako etykieta. Najedź, aby zobaczyć nazwę Unicode.

Czym naprawdę są te znaki

Zwykłe, standardowe punkty kodowe Unicode, nie złośliwy kod i nie celowa sygnatura. Mają realne zastosowania, tylko nie w nazwie zmiennej ani zapytaniu SQL.

ZnakPunkt kodowyDo czego służyCo psuje w kodzie
Spacja zerowej szerokościU+200BMiejsce miękkiego łamania wierszaRozcina identyfikatory, psuje dopasowania regex
Łącznik zerowej szerokościU+200DSkleja sekwencje emojiZmienia długość stringa; .length kłamie
Łącznik wyrazówU+2060Zapobiega złamaniu liniiPsuje tokeny porównywane lub haszowane
Spacja nierozdzielającaU+00A0Trzyma liczbę przy jednostceWygląda jak spacja, nie jest nią; walidatory ją odrzucają

Żaden z nich nie widać w zwykłym edytorze. To cały problem: code review, diff, własne oczy, nic tego nie złapie.

Gdzie to naprawdę boli

Linter pada na poprawnej linii

Zwykle spacja zerowej szerokości wewnątrz identyfikatora, dzieląca jeden token na dwa dla parsera.

Import CSV albo bazy danych psuje wiersz

Nieproszony znak zamienia czyste pole liczbowe w tekst albo przekracza limit długości, którego nikt nie ustawił celowo.

Wywołanie API zwraca 400 bez widocznej przyczyny

Surowe walidatory JSON nie wybaczają nieoczekiwanych punktów kodowych wewnątrz stringa, a treść żądania wygląda normalnie w każdym narzędziu.

To osobna sprawa niż realny statystyczny znak wodny, jaki w 2026 zaczęli wdrażać Claude i Gemini. Ten sygnał tkwi w doborze słów przez model, nie w żadnym znaku do zaznaczenia, i to narzędzie go nie dotyka, bo dotknąć się nie da. Więcej w tekstach o Claude i Gemini.

Pytania o ukryte znaki w kodzie AI

Czy to jest znak wodny AI?

Nie. Żaden większy dostawca nie używa niewidocznych znaków jako znaku wodnego, dałoby się je usunąć jednym czyszczeniem tekstu. To pozostałość typograficzna z renderowania odpowiedzi przez interfejs czatu, nie celowy sygnał.

Czy czyszczenie zepsuje formatowanie kodu?

Nie. Taby, znaki nowej linii i wcięcia zostają nietknięte. Usuwane są tylko niewidoczne punkty kodowe bez widocznego znaczenia, a nietypowe spacje są zastępowane zwykłą spacją, nie kasowane.

Więcej informacji