Перейти к содержимому
Ghostchars

Нулевая ширина и невидимые

ZERO WIDTH SPACE (U+200B)

Пробел без ширины. Он занимает место в строке, отмечает точку, где допустим перенос, и не рисует ровно ничего.

Кодовая позиция
U+200B
Другие записи
u200b\u200b​
Удаляется по умолчанию
Да
Управляющий параметр
Параметр не нужен
Может нести нагрузку
Нет

Скопировать и вставить U+200B

Чтобы скопировать и вставить ZERO WIDTH SPACE (U+200B), нажмите кнопку: в буфер обмена попадёт сам символ, а Ctrl+V (Cmd+V на Mac) вставит его в любое место, где можно печатать.

Откуда он берётся

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

Почему это важно

Unicode относит его к форматирующим символам, а не к пробельным, поэтому он переживает копирование, разрывает слово для проверки орфографии, ломает точный поиск и `grep`, а скрытому каналу даёт по биту на позицию. «привет» и «прив​ет» выглядят одинаково и не равны друг другу.

До и после

ZERO WIDTH SPACE (U+200B) до и после очистки, скрытый символ показан подписанной плашкой
Справочная карточка этого символа: кодовая позиция, вердикт и то же самое до и после, одной картинкой.
ДопривU+200Bет
Послепривет

Две строки, которые выглядят одинаково. Поиску по слову «привет» отвечает только вторая.

Символ показан подписанной плашкой, чтобы было видно, где он стоит. В вашем тексте он не рисует ровно ничего.

Когда он уместен

Только как подсказка о переносе там, где строка иначе вылезет за край: длинная ссылка, абзац на китайском. Русской или латинской прозе он не нужен, а в HTML для той же работы есть `<wbr>`.

Как его удалить

Его удаляет базовый проход. Включать нечего, и нет ни одного случая, когда Ghostchars оставил бы его на месте.

Текст лежит в файле, а не в буфере обмена? Отчёт по документу для .docx, .odt и .html находит символ внутри файла вместе со скрытыми фрагментами и исправлениями, и открывать файл для этого не нужно. Если вопрос в том, что делает остальной текст, а не этот один символ, можно измерить разброс длины предложений и увидеть, где проявляется каждая привычка: без баллов и без утверждений о том, кто написал текст.

Это водяной знак ИИ?

Используется для сокрытия данных, но не водяной знак

Нет. U+200B водяным знаком не является, и ни одна крупная модель не помечает им свой вывод. Это классический носитель для самодельной скрытой нагрузки, так что его присутствие говорит, что текст через что-то прошёл (CMS, редактор, стеганографическую утилиту), но не о том, кто его написал.

Известный носитель намеренно спрятанных данных. Кто-то поместил его туда специально, а это уже другой вопрос, чем то, кто написал слова.

Вопросы

Виден ли пробел нулевой ширины хоть в каком-нибудь редакторе?

При обычном отображении не виден: у него нет ни глифа, ни ширины. Он проявляется только в hex-редакторе, в редакторе с включённым показом невидимых символов или в инструменте вроде этого.

Не испортит ли текст его удаление?

Нет. Удаление U+200B может только убрать возможность переноса строки. Оно никогда не меняет ни слова, ни пробела, ни одного видимого символа.

Проверьте свой текст

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

Проверьте свой текстКак убрать водяной знак ИИ из своего текстаОчищать в Chrome прямо при вставкеОчищать на Mac одной комбинацией клавишВсе символы

Анонимная статистика?

Ghostchars обрабатывает ваш текст в браузере и никуда его не отправляет. Мы хотели бы считать просмотры страниц через собственный сервер аналитики, почти без cookie: содержимое не собирается никогда.