Обнаружитель невидимых символов
Вставьте любой текст, детектор сообщит обо всех невидимых символах, которые в нём есть: пробелах нулевой ширины, направляющих метках, BOM, мягких переносах, неразрывных пробелах и наборе управляющих кодовых точек Unicode, которые выглядят как пустота, но ломают поиск, сравнение (diff) и копирование-вставку. Каждое совпадение сопровождается кодовой точкой (U+200B), официальным именем Unicode и позицией в строке, чтобы вы могли точно определить, где прячется загадочная ошибка, прежде чем её удалить.
Как обнаружить невидимые символы
-
1
Вставьте текст
Введите подозрительный строковый фрагмент, фрагмент кода, скопированное сообщение или значение конфигурации.
-
2
Проведите сканирование
Инструмент проходит по каждому кодовому символу и выделяет все, соответствующие списку невидимых или форматируемых символов.
-
3
Прочитайте отчёт
Каждое совпадение показывает свою позицию (нумерация с 1), кодовую точку в формате `U+HHHH` и имя Unicode (например, пробел нулевой ширины, BOM и т. д.).
-
4
Очистить текст
Используйте действие «Заменить», чтобы удалить или отобразить скрытые символы, а затем вставьте очищенную версию.
Незаметные символы и их происхождение
Эти символы существуют по законным причинам, для оформления текста, определения направления написания или объединения символов. Однако они превращаются в ошибки, когда выходят из контекста, для которого были разработаны, и попадают в код, конфигурационные файлы, запросы поиска или имена пользователей.
Символы, которые ищет детектор
| Кодовая точка | Название | Где обычно проникает |
|---|---|---|
U+200B |
Пробел нулевой ширины | Редакторы форматированного текста, текстовые процессоры |
U+200C |
Несоединитель нулевой ширины | Персидская и хинди типографика |
U+200D |
Соединитель нулевой ширины | Последовательности эмодзи, индийские письменности |
U+200E |
Метка «слева направо» | Текст, содержащий и LTR-, и RTL-письменности |
U+200F |
Метка «справа налево» | То же самое |
U+202A..E |
Встраивание / переопределение | То же самое; иногда применяется злонамеренно (Trojan Source) |
U+2028 |
Разделитель строк | Скопирован из Word, ломает кодировщики JSON |
U+2029 |
Разделитель абзацев | То же самое |
U+FEFF |
Метка порядка байтов | Файлы, сохранённые в Notepad как UTF-8 с BOM |
U+00A0 |
Неразрывный пробел | Типографский пробел из Word |
U+00AD |
Мягкий перенос | Подсказки переноса слов в форматированном тексте |
Частые признаки ошибки из-за скрытого символа
- Сравнение строк, которые «должны» быть равны, даёт неравенство. Скопируйте значения в этот инструмент и сверьте число байтов.
- Регулярное выражение, которое совпадает на глаз, но даёт сбой в коде. Часто это
U+00A0, маскирующийся под пробел. - Парсер JSON падает на вставленной полезной нагрузке. Обычно это BOM в начале или
U+2028внутри строкового литерала, который JavaScript отклоняет внутри JSON. - Заголовок для SEO имеет неверную длину. Пробел нулевой ширины выводит вас за лимит без единого видимого изменения.
Аспект Trojan Source
Двунаправленные символы переопределения (U+202E, U+2066..U+2069) могут отображать исходный код в одном порядке, а компилировать в другом, это класс атак «Trojan Source». Если вы проверяете код от ненадёжных участников, прогоните их diff-ы через этот детектор перед слиянием.
Часто задаваемые вопросы
Notepad и некоторые более ранние инструменты Windows по умолчанию используют формат «UTF-8 с BOM». Файл BOM (U+FEFF) подходит для приложений для Windows, однако он несовместим со многими шелл-пайплайнами, файлами PHP (в таких файлах BOM выводится в виде предыдущего кода перед тегом <?php) и парсерами JSON.
На экране он выглядит как обычный пробел, но ведёт себя иначе: он не допускает переноса строки и не распознаётся большинством вариантов регулярного выражения \s во всех языках. Часто он оказывается в путях к файлам, адресах электронной почты и именах пользователей, скопированных из источников с форматированным текстом.
Не всегда. В текстах на арабском, персидском или деванагарском языках элементы соединения с нулевой шириной и элементы без соединения являются семантически обязательными. В коде, конфигурационных файлах и большинстве текстов на английском языке их можно удалить без проблем. Для контента естественного языка рекомендуется использовать специальный детектор для проверки перед удалением.
Нет, анализ выполняется только для текущего запроса, и ничего из вставленного не сохраняется или фиксируется после формирования ответа.
Сопутствующие инструменты
Генератор названий городов
Создавайте вымышленные названия городов, посёлков, деревень и столиц для миростроения, карт, игр, историй и тестовых данных с короткими заметками к каждому результату.
Символы стрелок для копирования
Копируйте популярные Unicode-стрелки одним щелчком: прямые, двойные, диагональные, крючковые, круговые и треугольные для документов, чатов и дизайна.
Символ «меньше или равно»
Копируйте знак ≤ и связанные математические символы сравнения. Включает Unicode, HTML-сущности и разметку LaTeX для электронных таблиц, научных работ и веб-страниц.
Преобразователь текста для людей с дислексией
Переформатируйте вставленный текст в короткие абзацы и строки примерно по 72 символа для более лёгкого чтения. Скопируйте результат в любой документ, письмо или редактор.
Генератор имен персонажей
Создавайте имена персонажей для романов, игр и ролевых игр. Выберите фэнтези, научную фантастику или современный стиль, задайте от 5 до 30 имен и получите готовые варианты сразу.
Генератор глитч-текста
Создавайте глитч-текст в стиле Zalgo с помощью комбинируемых знаков Unicode. Выберите интенсивность, посмотрите варианты и скопируйте искаженный текст для профиля, мема или хоррор-поста.
Инструмент доступен на других языках
- เครื่องตรวจจับตัวอักษรที่มองไม่เห็น [TH]
- Detector de Caracteres Invisibles [ES]
- Détecteur de caractères invisibles [FR]
- Detector de Caracteres Invisíveis [PT]
- Detektor niewidzialnych znaków [PL]
- أداة كشف الأحرف غير المرئية [AR]
- Unsichtbarer Zeichendetektor [DE]
- Onzichtbare karakter detector [NL]
- Detektor Karakter Tak Terlihat [ID]
- 보이지 않는 문자 탐지기 [KO]
- Bộ phát hiện ký tự vô hình [VI]
- Detektor för osynliga tecken [SV]
- 不可視文字検出器 [JA]
- Rilevatore di Caratteri Invisibili [IT]
- Görünmez Karakter Tespit Cihazı [TR]
- 不可见字符检测器 [ZH]
- Invisible Character Detector [EN]