Невидимые символы в тексте после ChatGPT: как найти и удалить

Невидимые символы — это кодовые точки, которых не показывает редактор, но которые хранит файл. После копирования из чата в тексте остаются обвязки цитат. Реже встречаются скрытые переносы и специальные пробелы. На глаз их не найти: нужна проверка посимвольно.

Проверить текст в браузерном демо текст не покидает браузер

Что обычно остаётся после чата

Следующие диапазоны таблица снятия humanizer-ru относит к классу safe: это обвязка копипасты, она снимается автоматически.

Живые примеры из реестра доказательств humanizer-ru (каждая запись привязана к снимку ревизии с датой доступа):

Оговорка честности: нулевые пробелы и невидимая разметка — находки класса B. Их заносят и другие источники: сайты, CMS, почтовые рассылки. Модель в примерах выше не атрибутирована, вердиктом об авторстве такая находка не является.

Unicode-теги и стеганографические «водяные знаки»

Блок тегов U+E0000–U+E007F используют и исследовательские схемы скрытой маркировки. В работе SteganoPrompt (arXiv:2605.16336, AIES 2026) печатная нагрузка кодируется символами этого блока по правилу chr(0xE0000 + ord(c)): закодированный текст визуально неотличим от исходного и переживает копирование между редакторами. Проверено 2026-08-25.

arxiv.org/abs/2605.16336v2

Теги внутри эмодзи-флагов (Англия, Шотландия, Уэльс) легитимны и не снимаются ни в каком режиме: проверка отличает флаг от одиночных тегов.

U+202F: не «водяной знак», а узкий неразрывный пробел

Запрос «удалить водяные знаки U+202F» встречается часто, поэтому ответим прямо. U+202F (narrow no-break space) — типографский символ из набора Юникода. У него нет владельца и нет сертификата происхождения: его ставят и системы вёрстки, и чат-интерфейсы, и человек с клавиатурой. Называть его водяным знаком нельзя.

Публичный разбор классов меток watermarks-remover (MIT) описывает снимаемый слой: мягкий перенос 0x00AD, наборные пробелы 0x2000–0x200A, вариационные селекторы 0xFE00–0xFE0F. Русская редакция таблицы исключает неразрывный пробел U+00A0 и узкий неразрывный пробел U+202F — это норма набора. Проверено 2026-08-26.

github.com, watermarks-remover, снимок f10efaa7

В таблице снятия humanizer-ru U+202F относится к классу ambiguous: замена на обычный пробел возможна только в явном режиме --include-ambiguous, инструмент показывает изменения и предупреждает о риске.

Что снимается, а что нет

КлассПримерыДействие
safe нулевой пробел, мягкий перенос, BOM, PUA-обвязка цитат ChatGPT, Unicode-теги вне флагов снимаются автоматически; результат проверяем повторным прогоном
ambiguous ZWJ/ZWNJ, bidi-метки, вариационные селекторы, спецпробелы (NBSP, U+2009, U+202F) только в явном режиме --include-ambiguous; спецпробелы заменяются обычным пробелом, а не удаляются
dangerous разделитель строк U+2028, разделитель абзацев U+2029, межстрочные аннотации U+FFF9–U+FFFB показываются в отчёте и не снимаются никогда; символ вне таблицы считается dangerous

Массового режима «удалить всё невидимое» не существует по построению: снятие структурных символов склеивает строки и теряет чтение.

Как проверить и снять

Без установки: демо в браузере подсвечивает находки, в том числе невидимые, и объясняет каждую. Расчёт идёт локально.

В терминале:

pip install humanizer-ru
humanizer-markers --scan файл.txt
humanizer-markers --remove файл.txt
humanizer-clean файл.txt

Честные границы

Вопросы и ответы

Как удалить невидимые символы из текста после ChatGPT?

Проверьте текст в браузерном демо humanizer-ru или в терминале: pip install humanizer-ru, затем humanizer-markers --scan файл.txt. Снимает safe-символы команда humanizer-markers --remove, полный сценарий с проверкой до и после — humanizer-clean файл.txt.

Нулевой пробел в тексте доказывает, что его написала нейросеть?

Нет. Нулевые пробелы заносятся и другим копированием: сайты, CMS, рассылки. Находка указывает на путь текста и требует проверки происхождения, вердикта об авторстве нет.

U+202F — это водяной знак ИИ? Можно ли его удалить?

U+202F — узкий неразрывный пробел, легитимный типографский символ, а не сертифицированный знак происхождения. В таблице humanizer-ru он относится к классу ambiguous: замена на обычный пробел возможна только в явном режиме --include-ambiguous, инструмент показывает изменения и предупреждает о риске.

Правда ли, что инструмент удаляет все невидимые символы?

Нет. Опасные структурные символы (разделители строк и абзацев, межстрочные аннотации) показываются в отчёте и не снимаются никогда; невидимый символ вне таблицы считается опасным. Массового режима «удалить всё невидимое» не существует по построению.

Гарантирует ли снятие невидимых символов обход детекторов ИИ?

Нет. Проект не обещает обход детекторов как гарантию и не измеряет его. Снятие символов — гигиена вставки для контента, которым вы владеете.

Источники