Соединители, селекторы и заполнители
ZERO WIDTH JOINER (U+200D)
Невидимый символ, который просит нарисовать двух соседей как одно целое. Именно он превращает трёх отдельных человечков в эмодзи семьи и связывает арабские и индийские буквы, которые иначе стояли бы порознь.
- Кодовая позиция
U+200D- Категория
- Соединители, селекторы и заполнители
- Удаляется по умолчанию
- Если одиночный
- Управляющий параметр
- Агрессивно
-a - Может нести нагрузку
- Да
Откуда он берётся
Любая эмодзи-последовательность, которую вы когда-либо отправляли: 👨👩👧 — это три человечка и два соединителя. В тексте он берётся из набора на персидском, хинди, малаялам и арабском, из скопированного веб-содержимого и из стеганографии нулевой ширины, где вместе с U+200C образует алфавит из двух символов.
Почему это важно
Это тот самый символ, из-за которого наивные чистильщики опасны. Удалите все U+200D — и одна эмодзи семьи распадётся на трёх отдельных людей, а слова в полудюжине письменностей сломаются. Оставьте все U+200D — и самый частый скрытый канал останется на месте.
До и после
Одна и та же кодовая позиция дважды. Тот соединитель, что стоит между «прив» и «ет», удалён; два внутри семьи оставлены, потому что без них остались бы три отдельных человека.
Символ показан подписанной плашкой, чтобы было видно, где он стоит. В вашем тексте он не рисует ровно ничего.
Когда он уместен
Между двумя базовыми эмодзи и между двумя буквами одной соединяющейся письменности — арабской, персидской, деванагари, малаялам. Ghostchars оставляет его ровно в этих позициях и удаляет во всех остальных.
Как его удалить
Одиночный соединитель — тот, что стоит между двумя латинскими буквами, — удаляет базовый проход. Несущий нагрузку остаётся и попадает в отчёт как «оставлен — несёт нагрузку»; параметр «Агрессивно» (`-a`) удаляет и такие, ценой ваших эмодзи и вашего персидского.
Это водяной знак ИИ?
Используется для сокрытия данных — но не водяной знак
Нет. Соединитель нулевой ширины между двумя латинскими буквами — контрабанда, но контрабанда, поставленная руками: это старейший приём текстовой стеганографии. Внутри эмодзи он просто часть того, как эмодзи устроены. Ни то, ни другое не указывает на автора.
Известный носитель намеренно спрятанных данных. Кто-то поместил его туда специально, а это уже другой вопрос, чем то, кто написал слова.
Вопросы
Не сломает ли чистка мои эмодзи?
При настройках по умолчанию — нет. Ghostchars смотрит на символы с обеих сторон: соединитель между двумя базовыми эмодзи остаётся. Удаляет их только параметр «Агрессивно» (`-a`), и он об этом прямо говорит.
А как быть с персидским, хинди или арабским?
Соединитель между двумя буквами одной соединяющейся письменности остаётся по той же причине. Его удаление изменило бы форму слова, а в некоторых словах — и его значение.
Как узнать, какие именно символы оставлены?
Каждая находка перечислена со строкой, позицией и действием: удалён, заменён, оставлен — несёт нагрузку или найден, но не тронут. Молча не решается ничего.
Проверьте свой текст
Вставьте что угодно в инструмент очистки, чтобы увидеть каждый скрытый символ: позицию, кодовую позицию и то, что произойдёт с каждым из них. Ничего никуда не отправляется.