Что такое Детектор Невидимых Символов?

Детектор невидимых символов сканирует ваш текст в поисках скрытых символов Unicode: пробелов нулевой ширины, мягких переносов, неразрывных пробелов и других, которые могут вызывать ошибки в коде, нарушать операции копирования и вставки или скрывать вредоносное содержимое. Вставьте любой текст — и каждый невидимый символ будет немедленно выявлен вместе с его именем Unicode и позицией.

Детектор проверяет шесть категорий: символы нулевой ширины (U+200B, U+200C, U+200D), направляющие метки (LRM, RLM), селекторы вариаций, управляющие символы, нестандартные пробелы (неразрывный, эм-квадрат, тонкий) и другие редкие невидимки. По каждому совпадению показываются Unicode-имя, шестнадцатеричный код, позиция и категория. Можно фильтровать по типу и одним кликом скопировать очищенный текст.

Как использовать

  1. Вставьте или введите текст в поле ввода — скрытые символы обнаруживаются мгновенно по мере набора.
  2. Изучите выделенные результаты, где для каждого невидимого символа указаны его имя Unicode (например, U+200B Пробел нулевой ширины), позиция и контекст.
  3. Выберите фильтрами, какие категории удалить, и нажмите «Очистить текст». Затем скопируйте или скачайте очищенный результат.

Когда использовать

  • Найти причину необъяснимой синтаксической ошибки в коде после копирования со страницы.
  • Очистить пользовательский ввод перед сохранением в базу данных.
  • Проверить, не прячет ли подозрительное письмо или документ омоглифы или контрабандный Unicode.

Результат

Вы вставляете фрагмент кода, скопированный с сайта, который постоянно выдаёт синтаксическую ошибку. Детектор обнаруживает два пробела нулевой ширины (U+200B), спрятанных между именами переменных, и маркер направления справа налево (U+200F) в конце строки — в редакторе они невидимы, но именно из-за них компилятор выдаёт ошибку.

Частые вопросы

Что такое пробел нулевой ширины и почему он ломает мой код?
U+200B — невидимый символ, изначально нужный для вёрстки азиатских письменностей. Попав в код, он стоит между символами, но не отображается, поэтому 'const foo' для компилятора становится 'const⁠foo' — неизвестный идентификатор, и парсер падает.
Невидимые символы всегда вредны или у некоторых есть законные применения?
Многие полезны. Нуль-ширины соединители собирают эмодзи семьи, селекторы вариаций меняют отображение эмодзи, неразрывные пробелы защищают имена от переноса. Детектор классифицирует каждый, чтобы оставить нужное и убрать лишнее.
Используются ли невидимые символы во вредоносных целях?
Да. В фишинге иногда подсовывают двунаправленный переключатель (U+202E), чтобы 'invoice.exe' выглядел как 'invocxe.pdf'. Их также применяют в prompt injection. Прогон текста через детектор сразу обнажает такие манипуляции.
«Очистить текст» удаляет все невидимые символы или только некоторые категории?
Удаляются все невидимые символы, отмеченные детектором при текущем фильтре. Если категория «пробел» отключена, нестандартные пробелы останутся. Чтобы вычистить всё, включите все шесть категорий перед очисткой.
Помечаются ли обычные пробелы и переносы строк?
Нет. Стандартные ASCII-пробелы (U+0020), табуляции (U+0009) и переносы (U+000A/U+000D) отфильтрованы по умолчанию, ведь они ожидаемы. Видны только редкие варианты — неразрывный, волосной, en-space и т. п., чтобы отчёт фокусировался на действительных аномалиях.

Похожие инструменты