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

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

NONCHARACTERS (U+FDD0–U+FDEF)

Кодовые позиции, которые Unicode навсегда зарезервировал так, чтобы они никогда не стали символами: U+FDD0–U+FDEF и две последние позиции каждой плоскости (U+FFFE, U+FFFF, U+1FFFE и так далее).

Диапазон
U+FDD0–U+FDEF
Удаляется по умолчанию
Да
Управляющий параметр
Параметр не нужен
Может нести нагрузку
Нет

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

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

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

Гарантировано, что в обмене данными они не встречаются, — значит, любое их появление это ошибка или вторжение. Ещё они роняют и сбивают с толку разборщики, а поскольку они навсегда не назначены, они не относятся к форматирующим: фильтр, который ищет категорию «Cf», не заметит их вовсе.

До и после

ДоготовоU+FDD0
Послеготово

U+FDD0, первый несимвол, — кодовая позиция, которая гарантированно не значит ничего, нигде и никогда.

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

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

Никогда — в тексте, который вы кому-то отправляете. Единственное дозволенное применение это внутренний служебный маркер внутри одной программы.

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

Базовый проход удаляет их все до единой. Ghostchars перечисляет их явным списком, а не проверкой категории, потому что категория у них — «не назначено».

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

Не водяной знак

Нет. Несимвол в вашем тексте — признак сломанного конвейера или намеренной проверки на прочность, но никогда не языковой модели.

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

Вопросы

Зачем Unicode резервирует позиции, которыми нельзя пользоваться?

Чтобы у программ были значения, которые можно безопасно применять внутри себя как маркеры, зная, что в настоящем тексте они не встретятся.

Почему другие чистильщики их пропускают?

Большинство из них ищет юникодную категорию «форматирующий символ». Несимволы навсегда не назначены, в эту категорию не попадают, и их приходится перечислять вручную.

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

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

Проверьте свой текстВсе символы