Экзотические пробелы
NO-BREAK SPACE (U+00A0)
Пробел, который запрещает перенос строки. Выглядит он в точности как обычный пробел и при этом является совершенно другой кодовой позицией.
- Кодовая позиция
U+00A0- Категория
- Экзотические пробелы
- Удаляется по умолчанию
- Нет
- Управляющий параметр
- Пробелы
-s - Может нести нагрузку
- Нет
Откуда он берётся
HTML-сущность ` `, текстовые процессоры (в некоторых языках они сами ставят его после короткого слова), копирование с веб-страниц и любая французская раскладка, где правило требует пробел перед `;` `:` `?` `!`.
Почему это важно
Это самое частое невидимое различие в обычном тексте. Поиск, `split(" ")`, разбор CSV, проверка форм и сравнение строк видят другой символ, и ни один человек его не заметит. Заодно это готовый двоичный канал: неразрывный пробел — единица, обычный — ноль.
До и после
На экране не отличить. Разбить на два слова по обычному пробелу удастся только вторую строку.
Символ показан подписанной плашкой, чтобы было видно, где он стоит. В вашем тексте он не рисует ровно ничего.
Когда он уместен
Постоянно. «10 км», «рис. 3», французские отбивки у знаков препинания и фамилия, которая не должна разъезжаться по строкам. У этого символа есть настоящая работа — поэтому по умолчанию Ghostchars его не трогает.
Как его удалить
Включите параметр «Пробелы» (`-s`). Символ будет ЗАМЕНЁН обычным пробелом, а не удалён, — так слова останутся раздельными.
Это водяной знак ИИ?
Встречается в выводе ИИ — но не водяной знак
Он действительно встречается в выводе моделей — чаще всего во французском и немецком тексте, где им полны обучающие данные, и рядом с единицами измерения. Но это не водяной знак: та же самая типографика получается у живого верстальщика и у французской клавиатуры. Неразрывный пробел не доказывает ничего о том, кто написал предложение.
Он действительно попадается в выводе моделей — как обычная типографика, усвоенная из обучающих данных. Это не намеренно, не задумано как обнаружимое и ничего не доказывает про отдельный документ.
Вопросы
Почему он не удаляется по умолчанию?
Потому что в большинстве текстов, где он встречается, он делает работу. Удаление склеило бы слова, а молчаливая замена изменила бы типографику, которую выбрали намеренно.
Это примета ИИ во французском тексте?
Нет. Французская типографика требует пробел перед `;` `:` `?` и `!`, и правильный пробел там — неразрывный. Найти их во французском значит найти правильный французский, а не машину.
Почему поиск его не находит?
Потому что в тексте стоит кодовая позиция U+00A0, а в вашем запросе — U+0020. Рисуются они одинаково, сравниваются по-разному.
Проверьте свой текст
Вставьте что угодно в инструмент очистки, чтобы увидеть каждый скрытый символ: позицию, кодовую позицию и то, что произойдёт с каждым из них. Ничего никуда не отправляется.