Unicode и интернационализация

детектор скрытых символовувидеть различия в хранимом тексте

Проверьте позиции и назначение символов перед изменением.

детектор скрытых символов

Исходный текст

Найденные позиции

Текст остаётся в этом браузере и не отправляется на сервер.

Подтвердите каждую категорию очистки

Изначально ничего не выбрано. Выбор категории подтверждает описанное действие. Повторите проверку и изучите просмотр перед применением.

Фиксированный набор Unicode 17.0.0: 521 кодовая точка и одиночные суррогаты. Это не полная проверка видимости и не заключение о безопасности. Официальные имена сохраняют запись Unicode.

Смещение и индекс начинаются с 0; строка и столбец с 1. Столбцы считают кодовые точки, не видимые ячейки. CRLF — один перенос; CR, LF, NEL, LS и PS тоже разделяют строки. Оба символа CRLF относятся к предыдущей строке.

До 100 000 единиц UTF-16. Нетронутые CR/CRLF сохраняются как получены от браузера; новые переносы используют LF. Редактор может показывать нормализованные окончания строк.

Метки служат для отображения и не вставляются в текст. Управление не выполняется: символы показаны в порядке хранения. Контекст ограничен 24 единицами UTF-16 с каждой стороны.

Введите текст или загрузите пример, затем проверьте символы.

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

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

Зачем нужен детектор скрытых символов

Проверка конкретного места

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

Похожие строки с цветными метками, показывающими скрытые позиции.

Сохранение нужных соединителей

ZWJ соединяет части некоторых эмодзи, а ZWNJ управляет соединением букв в отдельных письменностях. По умолчанию категории очистки не выбраны. Можно обработать ненужные разделители и оставить символы, от которых зависит правильное отображение.

Метки одной выбранной категории удалены, а соединённые группы символов сохранены.

Проверьте снимок перед изменением

01

Повторная проверка после редактирования

Проверка запускается вручную кнопкой или Ctrl/Cmd+Enter. При изменении текста или категорий результат устаревает, а экспорт отключается. Снова выполните проверку, прежде чем готовить предварительный просмотр очистки.

02

Разница между заменой и удалением

Особые пробелы заменяются обычными, а остальные выбранные категории удаляются. Сравните исходный и будущий текст, а также количество изменений. Удаление управляющих символов может соединить строки или поля, разделённые табуляцией.

03

Возможность вернуться назад

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

Что входит в результаты проверки

Код и логический контекст

Для каждой находки показаны код U+, имя и категория. В диагностическом контексте управляющие символы заменены видимыми метками в порядке хранения. Они не могут заново переставить отображаемый фрагмент и скрыть нужную позицию.

Три отдельных вида координат

Смещение UTF-16 и индекс кодовой точки начинаются с нуля, строка и столбец — с единицы. Столбцы считают кодовые точки. Символ дополнительной плоскости занимает две единицы UTF-16, поэтому индекс и смещение могут различаться.

Полный отчёт за пределами списка

Список раскрывается порциями по 50 находок. JSON содержит все результаты и числовые позиции, но не полный исходный текст. Текстовый экспорт возвращает проверенный ввод; очищенная версия появляется только после применения изменений.

Точный охват и пределы очистки

Фиксированная таблица Unicode 17
Проверяются управляющие и форматные символы, пробельные символы вне ASCII, селекторы вариантов и указанные заполнители. Форматный символ не обязательно невидим или вреден. Обычные пробелы ASCII, похожие буквы и общие комбинируемые акценты не входят в проверку. Указанные заполнители: U+034F / U+115F / U+1160 / U+17B4 / U+17B5 / U+2800 / U+3164 / U+FFA0.
Логические строки вместо переноса на экране
CRLF считается одним переносом; CR, LF, NEL, LS и PS тоже разделяют строки. Столбцы не являются байтовыми позициями или шириной глифов. Инструмент исследует переданный браузером текст, а не восстанавливает исходные байты файла.
Каждая категория требует выбора
Нет заранее включённой очистки. Замена особых пробелов теряет ширину и запрет переноса. Удаление управляющих символов может объединить строки; удаление соединителей, селекторов и bidi-меток может изменить правильное написание или состав эмодзи.
Ограничение длины и одиночные суррогаты
Предел — 100 000 единиц UTF-16. Более длинный ввод отклоняется без обрезания. Непарные суррогаты только отмечаются, но не исправляются. Копирование и скачивание текста отключаются, чтобы избежать замены с потерями; JSON-отчёт остаётся доступным.

Детектор скрытых символов: вопросы

Откуда скрытые символы в моём тексте?

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

Могут ли скрытые символы быть опасными?

В некоторых контекстах да: bidi-управление может менять отображаемый порядок, а скрытый разделитель — точное сравнение имён. Однако само наличие не доказывает атаку. Этот инструмент не проводит полноценный аудит кода и не выдаёт заключение о безопасности.

Как удалить скрытые символы?

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

Мой текст куда-то отправляется?

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

Обнаруживает ли это атаки гомоглифов?

Нет. Кириллическая «а» и латинская «a» видимы, хотя могут выглядеть одинаково. Для поиска похожих символов нужны отдельные данные и правила. Здесь проверяется фиксированный набор управляющих, форматных и других указанных кодов, а не сходство начертания.

Есть позиция, которую стоит перепроверить?

Вернуться к проблемному фрагменту

Детектор скрытых символов поможет разобрать небольшой пример. Меняйте только те категории, чьё влияние на итоговый текст вы понимаете и действительно хотите изменить.