Детектор невидимых символов
Выявите скрытые символы, из-за которых визуально одинаковые строки не совпадают. Вставьте текст, чтобы увидеть, где именно скрываются неразрывные пробелы, символы нулевой ширины, табуляции и другие невидимые символы.
Попробуйте пример:
Ввод
Введите или перетащите файл
Найдены невидимые символы
Вставьте текст слева для сканирования…
Справочник невидимых символов
| Значок | Кодовая точка | Название | Обнаруживается |
|---|---|---|---|
| [NBSP] | U+00A0 | No-Break Space | ✓ Да |
| [ZWS] | U+200B | Zero-Width Space | ✓ Да |
| [ZWNJ] | U+200C | Zero-Width Non-Joiner | ✓ Да |
| [ZWJ] | U+200D | Zero-Width Joiner | ✓ Да |
| [BOM] | U+FEFF | Byte Order Mark | ✓ Да |
| [WJ] | U+2060 | Word Joiner | ✓ Да |
| [CR] | U+000D | Carriage Return (\r) | ✓ Да |
| [TAB] | U+0009 | Horizontal Tab | ✓ Да |
| [SHY] | U+00AD | Soft Hyphen | - |
| [NNBS] | U+202F | Narrow No-Break Space | - |
| [LRM] | U+200E | Left-to-Right Mark | ✓ Да |
| [RLM] | U+200F | Right-to-Left Mark | ✓ Да |
| [RTLO] | U+202E | Right-to-Left Override | ✓ Да |
| [LSEP] | U+2028 | Line Separator | - |
| [PSEP] | U+2029 | Paragraph Separator | - |
| [HAIR] | U+200A | Hair Space | - |
| [HAN-F] | U+3164 | Hangul Filler | ✓ Да |
| [BRL] | U+2800 | Braille Pattern Blank | ✓ Да |
| [ISPACE] | U+3000 | Ideographic Space | - |
Часто Задаваемые Вопросы
Что такое невидимый символ?
Невидимые символы - это кодовые точки Unicode, которые отображаются как пробел или не занимают видимого места, но технически отличаются от обычного пробела. Они часто встречаются в данных, скопированных с веб-страниц, из PDF, электронных таблиц и экспортированных полей баз данных.
Распространённые типы, обнаруживаемые этим инструментом:
Распространённые типы, обнаруживаемые этим инструментом:
- NBSP (U+00A0) - выглядит как обычный пробел, но является другим символом; вставляется HTML-редакторами и текстовыми процессорами
- ZWS (U+200B) - полностью невидим, не занимает места; главная причина несовпадения «одинаковых» строк
- ZWJ / ZWNJ - управляют соединением соседних символов; часто встречаются в арабском, персидском языках и последовательностях эмодзи
- BOM (U+FEFF) - добавляется в начало файлов Блокнотом Windows, Excel и PowerShell; первая строка никогда не совпадает
- CR (U+000D) - возврат каретки; часть окончаний строк CRLF Windows, вызывает несовпадение из-за конечных символов
- TAB (U+0009) - горизонтальная табуляция; из TSV-файлов, редакторов кода и копирования из терминала
Почему две строки выглядят одинаково, но не совпадают?
Обычный пробел (U+0020) и неразрывный пробел (U+00A0) визуально идентичны, но имеют совершенно разные коды символов. При сравнении списков элемент с NBSP в конце не совпадёт с тем же элементом с обычным пробелом - даже если оба выглядят одинаково на экране.
Символы нулевой ширины ещё сложнее заметить: они не занимают видимого места, поэтому их присутствие невозможно определить визуально, пока сравнение или поиск в базе данных не завершится неожиданной ошибкой.
Этот инструмент показывает точное местонахождение каждого невидимого символа, чтобы вы могли очистить данные перед сравнением.
Символы нулевой ширины ещё сложнее заметить: они не занимают видимого места, поэтому их присутствие невозможно определить визуально, пока сравнение или поиск в базе данных не завершится неожиданной ошибкой.
Этот инструмент показывает точное местонахождение каждого невидимого символа, чтобы вы могли очистить данные перед сравнением.
Откуда берутся невидимые символы?
Наиболее распространённые источники:
- Веб-страницы - HTML часто использует NBSP (объект
) для вёрстки; любое копирование с сайта может их принести - PDF - при извлечении текста отступы и концы строк часто бывают непоследовательными
- Электронные таблицы - Excel и Google Sheets иногда вставляют ZWS в отформатированные ячейки
- Экспорт баз данных - некоторые базы данных сохраняют NBSP в текстовых полях из исходных приложений
- Мобильные клавиатуры - некоторые вставляют NBSP вместо обычного пробела после знаков пунктуации
- Текстовые процессоры - Microsoft Word и аналогичные приложения используют неразрывные пробелы в форматированном тексте
Как удалить невидимые символы из моего списка?
- Вставьте текст в поле ввода. Аннотированная панель показывает каждый невидимый символ в виде цветного значка (например, [NBSP], [ZWS]), чтобы вы видели, где именно они находятся.
- Скопируйте из панели Очищено внизу, которая показывает тот же текст с удалёнными невидимыми символами.
Что такое неразрывный пробел (NBSP)?
Неразрывный пробел (U+00A0) выглядит как обычный пробел, но имеет другой код символа (160 против 32). Он был разработан для удержания соседних слов на одной строке - например, чтобы «100 км» не переносилось на новую строку.
Откуда берётся: HTML-редакторы (объект
Почему вызывает проблемы: Любое точное сравнение строк считает NBSP отличным от обычного пробела, что вызывает неожиданные несовпадения при сравнении списков, поиске в базах данных и импорте - даже когда текст выглядит одинаково на экране.
Откуда берётся: HTML-редакторы (объект
), текстовые процессоры, такие как Microsoft Word, и некоторые мобильные клавиатуры, вставляющие его после знаков пунктуации.Почему вызывает проблемы: Любое точное сравнение строк считает NBSP отличным от обычного пробела, что вызывает неожиданные несовпадения при сравнении списков, поиске в базах данных и импорте - даже когда текст выглядит одинаково на экране.
Что такое символ нулевой ширины (ZWS)?
Символ нулевой ширины (U+200B) не занимает никакого видимого места - он полностью невидим для глаза. Изначально он был разработан для обозначения необязательных точек переноса строки в письменностях, не использующих пробелы между словами (как тайский или CJK-текст).
Откуда берётся: Текст, собранный с веб-страниц, контент с определённых CMS-платформ (WordPress иногда их вставляет) и документы, конвертированные из форматов RTF.
Почему вызывает проблемы: Поскольку он невидим, нет способа узнать о его наличии, пока сравнение, поиск в базе данных или импорт не завершится неожиданной ошибкой. Это самая частая причина несовпадения «одинаковых» строк.
Откуда берётся: Текст, собранный с веб-страниц, контент с определённых CMS-платформ (WordPress иногда их вставляет) и документы, конвертированные из форматов RTF.
Почему вызывает проблемы: Поскольку он невидим, нет способа узнать о его наличии, пока сравнение, поиск в базе данных или импорт не завершится неожиданной ошибкой. Это самая частая причина несовпадения «одинаковых» строк.
Можно ли использовать это перед сравнением списков?
Да - очистка невидимых символов в первую очередь является одним из лучших шагов подготовки перед использованием инструментов Сравнить два списка или Сравнить несколько списков.
Скопируйте очищенный результат из этого инструмента и вставьте его в инструмент сравнения. Оба инструмента также имеют опцию «Игнорировать начальные/конечные пробелы», которая обнаруживает NBSP на границах строк - но детектор невидимых символов более тщательный: он находит и удаляет все невидимые символы независимо от того, где они находятся в строке.
Скопируйте очищенный результат из этого инструмента и вставьте его в инструмент сравнения. Оба инструмента также имеют опцию «Игнорировать начальные/конечные пробелы», которая обнаруживает NBSP на границах строк - но детектор невидимых символов более тщательный: он находит и удаляет все невидимые символы независимо от того, где они находятся в строке.