Нулевая ширина и невидимые
WORD JOINER (U+2060)
Противоположность пробелу нулевой ширины: невидимый символ, который запрещает перенос строки в своей позиции и не добавляет никакой ширины.
- Кодовая позиция
U+2060- Категория
- Нулевая ширина и невидимые
- Удаляется по умолчанию
- Да
- Управляющий параметр
- Параметр не нужен
- Может нести нагрузку
- Нет
Откуда он берётся
Программы вёрстки вставляют его, чтобы число не оторвалось от единицы измерения. Он же — штатная замена U+FEFF в середине документа, так что всё, что «осовременивает» метку порядка байтов, оставляет после себя соединители слов. Стеганографические утилиты, ожидающие, что фильтр поймает U+200B, часто берут именно его.
Почему это важно
Он невидим, он не пробельный, и большинство фильтров нулевой ширины ищут только U+200B и соединители — ровно поэтому за него и берутся утилиты для скрытой нагрузки. Две позиции, два символа — и вот у вас двоичный канал, который переживает почти любую чистку.
До и после
Соединитель слов стоит между числом и единицей измерения и сваривает их в одно целое.
Символ показан подписанной плашкой, чтобы было видно, где он стоит. В вашем тексте он не рисует ровно ничего.
Когда он уместен
Чтобы «12 кг» или «рис. 4» не разъезжались по двум строкам. В прозе ту же работу лучше делает неразрывный пробел — он хотя бы виден как пробел.
Как его удалить
Его удаляет базовый проход. Ghostchars никогда не оставляет соединитель слов: в отличие от ZWJ, у него нет орфографической роли ни в одной письменности.
Это водяной знак ИИ?
Используется для сокрытия данных — но не водяной знак
Нет. Это типографский управляющий символ, за который утилиты скрытой нагрузки взялись именно потому, что наивные «чистильщики пробелов нулевой ширины» его не замечают. О машинном авторстве он не говорит ничего.
Известный носитель намеренно спрятанных данных. Кто-то поместил его туда специально, а это уже другой вопрос, чем то, кто написал слова.
Вопросы
Чем он отличается от пробела нулевой ширины?
U+200B разрешает перенос строки в своей позиции, U+2060 — запрещает. Оба невидимы, и оба удаляются базовым проходом.
Может, лучше поставить неразрывный пробел?
В прозе — обычно да. U+00A0 виден как пробел, поэтому его замечают и читатель, и diff, а работу «держать вместе» он делает ту же.
Проверьте свой текст
Вставьте что угодно в инструмент очистки, чтобы увидеть каждый скрытый символ: позицию, кодовую позицию и то, что произойдёт с каждым из них. Ничего никуда не отправляется.