Невидимые символы в скопированном тексте

Опубликовано 3 мин чтения / 674 слов

Текст на экране выглядит безупречно, а ведёт себя странно. Поиск не находит слово, которое явно перед глазами. Ссылка открывает страницу с ошибкой. Кусок кода отказывается запускаться. Часто виноват символ, которого вы просто не видите.

Что это за символы

Текст - это последовательность кодовых точек, и не каждая из них что-то рисует. Обычно виноваты вот эти:

  • Символы нулевой ширины (U+200B пробел нулевой ширины, U+200C и U+200D соединители, U+FEFF метка порядка байтов). На экране они не занимают места.
  • Знаки направления письма (U+202A - U+202E и похожие). Они задают направление текста. Для арабского или иврита это нужно, а в русском абзаце - зря.
  • Мягкий перенос (U+00AD). Показывает, где слово можно разорвать, и виден только когда строка действительно переносится.
  • Странные пробелы: неразрывный и целое семейство узких, широких и тонких, которые похожи на обычный, но им не равны.
  • Типографская пунктуация: изогнутые кавычки, длинное тире, многоточие одним знаком, маркеры и стрелки.

Последнюю группу видно, но это другой символ, не тот, что на вашей клавиатуре. Программы с ним часто обращаются иначе, чем вы ждёте.

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

Чаще всего из обычного копирования:

  • из окон чатов и веб-страниц: вёрстка добавляет мягкие переносы или пробелы нулевой ширины, чтобы управлять разрывом строк;
  • из текстовых редакторов, которые на лету меняют прямые кавычки и дефисы на «умные»;
  • из переводчиков и из PDF: при извлечении текста там появляются странные пробелы и рваные слова;
  • из документов, которые прошли через несколько программ, и каждая оставила свой след.

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

Чем они мешают

  • Ломается поиск. Слово со скрытым символом внутри - уже другая строка. «Договор» и «дого[нулевая ширина]вор» не совпадут.
  • Появляются странные различия. Две строки выглядят одинаково, а программа считает их разными.
  • Код и адреса не работают. Хватит одной изогнутой кавычки в команде или пробела нулевой ширины в ссылке, чтобы всё встало. Сообщение об ошибке при этом редко объясняет причину.
  • Антиплагиат сбивается. Скрытые символы и подмена пробелов меняют разбиение на слова, и совпадения то пропадают, то находятся не там.
  • Едет вёрстка. Видны странные просветы, строки не переносятся или рвутся не в том месте.

Как найти и очистить

В AuthorText для этого два способа.

Первый - проверка. Она подсвечивает в тексте символы, похожие на водяные знаки, и типографику, так что вы видите, где они сидят, и не гадаете. Детектор знает 259 таких кодовых точек: символы нулевой ширины, мягкий перенос, невидимые операторы, знаки направления, селекторы вариантов, теговые символы, символы частного использования и ещё кое-что.

Второй - инструмент «Очистить и нормализовать». Он убирает эти символы и приводит типографскую пунктуацию к обычному ASCII: прямые кавычки, простой дефис, три точки. Результат сначала сравните с оригиналом.

Порядок такой:

  1. Вставьте текст в проверку и посмотрите на подсвеченные места.
  2. Решите, нормализовать всё (для кода, адресов и данных обычно да) или только часть.
  3. Запустите очистку и сравните.

Одно предупреждение: длинное тире в художественном тексте может стоять не случайно. Для технических текстов нормализация уместна. В прозе - как захотите.

Совсем другое: статистические водяные знаки

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

Такой знак не состоит из символов. Никакой кодовой точки в тексте не спрятано, он сидит в выборе слов. Поэтому программа очистки его не найдёт и не уберёт. AuthorText и не заявляет, что его обнаруживает: наш анализ смотрит на стиль, а не на секретный ключ. Невидимые символы и статистические водяные знаки - две разные темы, и первая ничего не говорит о второй.

И ещё. Скрытые символы не значат, что текст написал ИИ, а их отсутствие не значит, что писал человек. Они говорят лишь о том, как текст копировали, а не о том, кто его сочинил.

Что делать

Прежде чем публиковать, отправлять или запускать скопированный текст, взгляните на него один раз. Проверьте текст, чтобы увидеть скрытые символы и типографику, а когда нужен обычный ASCII, воспользуйтесь «Очистить и нормализовать». Если у вас есть и другие основания подозревать текст, наше короткое руководство по признакам ИИ-текста расскажет, на что ещё смотреть и почему это не доказательство.

Проверьте свой текст Бесплатно, до 3 000 символов. Без регистрации и без хранения текста.
Проверить текст

Оценка сервиса - подсказка, а не доказательство авторства.