Нулевая ширина и невидимые
NONCHARACTERS (U+FDD0–U+FDEF)
Кодовые позиции, которые Unicode навсегда зарезервировал так, чтобы они никогда не стали символами: U+FDD0–U+FDEF и две последние позиции каждой плоскости (U+FFFE, U+FFFF, U+1FFFE и так далее).
- Диапазон
U+FDD0–U+FDEF- Категория
- Нулевая ширина и невидимые
- Удаляется по умолчанию
- Да
- Управляющий параметр
- Параметр не нужен
- Может нести нагрузку
- Нет
Откуда он берётся
Внутренние маркеры, утёкшие из программы, испорченные преобразования кодировок, а также фаззеры и утилиты скрытой нагрузки, которые выбирают их именно потому, что ничего законного ими не пользуется.
Почему это важно
Гарантировано, что в обмене данными они не встречаются, — значит, любое их появление это ошибка или вторжение. Ещё они роняют и сбивают с толку разборщики, а поскольку они навсегда не назначены, они не относятся к форматирующим: фильтр, который ищет категорию «Cf», не заметит их вовсе.
До и после
U+FDD0, первый несимвол, — кодовая позиция, которая гарантированно не значит ничего, нигде и никогда.
Символ показан подписанной плашкой, чтобы было видно, где он стоит. В вашем тексте он не рисует ровно ничего.
Когда он уместен
Никогда — в тексте, который вы кому-то отправляете. Единственное дозволенное применение это внутренний служебный маркер внутри одной программы.
Как его удалить
Базовый проход удаляет их все до единой. Ghostchars перечисляет их явным списком, а не проверкой категории, потому что категория у них — «не назначено».
Это водяной знак ИИ?
Не водяной знак
Нет. Несимвол в вашем тексте — признак сломанного конвейера или намеренной проверки на прочность, но никогда не языковой модели.
Никак не связан с машинно сгенерированным текстом. Он приходит из программы, с клавиатуры или от человека.
Вопросы
Зачем Unicode резервирует позиции, которыми нельзя пользоваться?
Чтобы у программ были значения, которые можно безопасно применять внутри себя как маркеры, зная, что в настоящем тексте они не встретятся.
Почему другие чистильщики их пропускают?
Большинство из них ищет юникодную категорию «форматирующий символ». Несимволы навсегда не назначены, в эту категорию не попадают, и их приходится перечислять вручную.
Проверьте свой текст
Вставьте что угодно в инструмент очистки, чтобы увидеть каждый скрытый символ: позицию, кодовую позицию и то, что произойдёт с каждым из них. Ничего никуда не отправляется.