fixmint
RU

Скрытые символы в тексте: где они прячутся и как их удалить

Автор: · · обновлено 8 ноября 2026 г. · Чтение: 4 мин

Скрытые символы — это невидимые кодовые точки Unicode, например пробелы нулевой ширины, неразрывные пробелы и метки направления текста. Они выглядят как обычный пробел или вовсе не видны, поэтому текст кажется нормальным, а поиск, код и проверка форм воспринимают его как другой текст. Найти их можно, посмотрев кодовые точки, а удалить — стерев или заменив именно эти символы.

Удаление невидимых символовНевидимый мусор в моём текстеСделать бесплатно

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

Большинство скрытых символов попадает в текст при копировании, а не при наборе:

  • Веб-страницы. Сайты используют неразрывные пробелы (U+00A0), чтобы два слова не разрывались на разных строках, и пробелы нулевой ширины (U+200B), чтобы отметить место, где длинное слово можно переносить. Скопированный фрагмент приносит их с собой.
  • Текстовые редакторы. Мягкие переносы (U+00AD) вставляются для переноса слов по слогам. Они невидимы, пока строка не разрывается в этом месте. Некоторые редакторы также автоматически вставляют неразрывные пробелы в определённых местах.
  • Мессенджеры и электронная почта. Сообщения, скопированные из чата или почтового клиента, могут содержать соединители нулевой ширины и метки направления, особенно если текст смешивает языки.
  • Текст с разным направлением письма. Арабский, иврит и смешанный текст используют метки направления, например метку слева направо (U+200E), метку справа налево (U+200F), а также символы вложения и переопределения (от U+202A до U+202E). Они управляют тем, как выводится строка, а не тем, что в ней написано.
  • Метки порядка байтов. Метка порядка байтов (BOM, U+FEFF) в начале файла — это сигнатура, которую записывают некоторые редакторы. Она невидима, но становится настоящим первым символом, когда файл читается как обычный текст.
  • Окна чатов с ИИ. Текст, скопированный из некоторых интерфейсов чатов с ИИ, тоже может содержать такие символы. Скорее всего, причина в том, как текст отображался и копировался, поэтому не стоит считать их признаком намерения.

Почему они мешают

Каждый скрытый символ — это настоящая кодовая точка, поэтому он меняет текст, даже когда страница выглядит точно так же:

  • Поиск не находит слово. Пробел нулевой ширины внутри слова ломает совпадение, и поиск по слову ничего не выдаёт.
  • Код ломается. Неразрывный пробел в исходном файле во многих языках даёт синтаксическую ошибку, и ошибка часто указывает на строку, которая выглядит безупречно. О другой распространённой проблеме при вставке кода читайте в статье о фигурных кавычках.
  • Форма отклоняет ввод. Адрес электронной почты с пробелом нулевой ширины после @ выглядит правильно, но не проходит проверку.
  • Счётчики расходятся. Количество символов может учитывать эти знаки или не учитывать — в зависимости от инструмента, поэтому один и тот же текст получает два разных итога. Посчитайте текст до и после очистки в счётчике слов, чтобы увидеть разницу.

Вот небольшой пример. Слово «счёт» состоит из пяти букв. Если внутри него стоит пробел нулевой ширины, то это уже шесть кодовых точек, и выглядит слово на экране точно так же. Поиск по слову «счёт» не найдёт второй вариант.

Как их увидеть

Просто глядя на текст, их не найти, поэтому воспользуйтесь одним из способов:

  1. Вставьте текст в инструмент, который показывает кодовые точки, например удаление невидимых символов: он сообщит, что нашёл, ещё до внесения изменений.
  2. В редакторе кода включите настройку, которая показывает пробельные и специальные символы. Тогда неразрывные пробелы будут отличаться от обычных.
  3. В языке программирования выведите кодовые точки подозрительной строки. В Python, например, [hex(ord(c)) for c in text] перечисляет каждую из них: неразрывный пробел отобразится как 0xa0, а пробел нулевой ширины как 0x200b.

Как их удалить

Удаление должно быть точечным. Если удалить все символы не из ASCII, вместе с ними пропадут ударения, кавычки и буквы других языков. Поэтому лучше так:

  • Замените неразрывные пробелы обычными, ведь почти всегда они задумывались как пробелы.
  • Удалите пробелы нулевой ширины, мягкие переносы, метки порядка байтов и случайные метки направления.
  • Сохраните буквы с диакритикой, typographic-кавычки и настоящие знаки препинания.

Исправить вставленный текст создан для текста, пришедшего откуда-то со стороны, поэтому используйте его, если в скопированном фрагменте ещё и сбиты переносы строк или пробелы.

Как сделать это в fixmint

  1. Вставьте текст в поле Ваш текст.
  2. Просмотрите список найденного. Каждый символ назван, например ZWSP для пробела нулевой ширины, и отмечен тем, что с ним будет сделано.
  3. Оставьте включённым пункт Сохранять соединители внутри эмодзи, чтобы последовательности эмодзи по-прежнему отображались как один значок.
  4. Отметьте пункт Также заменить фигурные кавычки, короткие и длинные тире и … на обычные символы ASCII только для кода или данных, затем нажмите Копировать или Скачать .txt.

Особые случаи

  • Последовательности эмодзи намеренно используют соединители нулевой ширины. Если их удалить, один эмодзи распадётся на несколько значков.
  • Неразрывный пробел уместен в некоторых видах типографики, например между числом и единицей измерения, а также в некоторых правилах французской пунктуации. Заменяйте его только там, где точно знаете, что он случайный.
  • Когда текст очищен, сравните его с оригиналом, чтобы точно увидеть, что изменилось.

Краткие ответы

Означает ли наличие скрытых символов, что текст написал ИИ?

Нет. Они появляются из веб-страниц, текстовых редакторов, мессенджеров и при копировании вообще. Их наличие не показывает, кто или что написал текст.

Решит ли проблему удаление всех символов не из ASCII?

Нет. Вместе с ними пропадут ударения, кавычки и буквы других языков. Удаляйте только конкретные невидимые кодовые точки.

Как понять, есть ли в строке скрытые символы?

Сравните её длину с количеством символов, которые вы видите, или вставьте строку в инструмент, который показывает кодовые точки. Если числа не совпадают, внутри есть что-то невидимое.

Переведено с помощью ИИ с Английский оригинал.

Комментарии

    Комментариев пока нет. Будьте первым.

    Ваша оценка (необязательно)

    Ваша почта никогда не показывается и не сохраняется.

    Обложка книги «How to Remain Valuable When Intelligence Becomes Cheap»How to Remain Valuable When Intelligence Becomes Cheap

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

    $3.84Купить на GumroadНа английском